From d03eac3133a766873cbd43d13393514db8e5293b Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Wed, 18 Sep 2024 14:26:45 -0700 Subject: [PATCH] intel/brw/xe3+: Disable round-robin allocation heuristic on Xe3+. Xe3+ benefits from packing register allocations tightly in order to make optimal use of the GRF space. The round-robin heuristic previously in use often causes the whole GRF space to be used even if register pressure is substantially lower, which would severely decrease thread-level parallelism on Xe3+. Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/compiler/brw_reg_allocate.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_reg_allocate.cpp b/src/intel/compiler/brw_reg_allocate.cpp index 9ab894fa2b2..e17b28e10b5 100644 --- a/src/intel/compiler/brw_reg_allocate.cpp +++ b/src/intel/compiler/brw_reg_allocate.cpp @@ -106,7 +106,8 @@ brw_fs_alloc_reg_sets(struct brw_compiler *compiler) class_sizes[i] = i + 1; struct ra_regs *regs = ra_alloc_reg_set(compiler, base_reg_count, false); - ra_set_allocate_round_robin(regs); + if (devinfo->ver < 30) + ra_set_allocate_round_robin(regs); struct ra_class **classes = ralloc_array(compiler, struct ra_class *, REG_CLASS_COUNT);