aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/compiler/brw_fs.h
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2020-05-19 14:37:44 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2020-05-27 18:16:31 -0700
commit10d0f39beb20c4cd6fe6d3f23a3b1d918653127a (patch)
tree967db5579b07be39c779152a0d2937ecd8cfdd8d /src/intel/compiler/brw_fs.h
parent9526e14b5cca2417368a41e2fb4a5835cfcbe205 (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.h4
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();