diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2020-05-19 14:37:44 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2020-05-27 18:16:31 -0700 |
commit | 10d0f39beb20c4cd6fe6d3f23a3b1d918653127a (patch) | |
tree | 967db5579b07be39c779152a0d2937ecd8cfdd8d /src/intel/compiler/brw_fs.h | |
parent | 9526e14b5cca2417368a41e2fb4a5835cfcbe205 (diff) |
intel/fs: Remove min_dispatch_width spilling decision from RA
Move the decision one level up, let brw_compile_*() functions use the
spilling information to decide whether or not a certain width
compilation can spill (passed via run_*() functions).
The min_dispatch_width was used to compare with the dispatch_width and
decide whether "a previous shader is already available, so don't
accept spill".
This is replaced by:
- Not calling run_*() functions if it is know beforehand a smaller width
already spilled -- since the larger width will spill and fail;
- Explicitly passing whether or not a shader is allowed to spill. For
the cases where the smaller width is available and haven't spilled,
the larger width will be compiled but is only useful if it won't
spill.
Moving the decision to this level will be useful later for variable
group size, which is a case where we want all the widths to be allowed
to spill.
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5142>
Diffstat (limited to 'src/intel/compiler/brw_fs.h')
-rw-r--r-- | src/intel/compiler/brw_fs.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h index b9783eb2285..5bf5cdeed41 100644 --- a/src/intel/compiler/brw_fs.h +++ b/src/intel/compiler/brw_fs.h @@ -125,9 +125,9 @@ public: bool run_tcs(); bool run_tes(); bool run_gs(); - bool run_cs(unsigned min_dispatch_width); + bool run_cs(bool allow_spilling); void optimize(); - void allocate_registers(unsigned min_dispatch_width, bool allow_spilling); + void allocate_registers(bool allow_spilling); void setup_fs_payload_gen4(); void setup_fs_payload_gen6(); void setup_vs_payload(); |