From 29d30c6f3d093834a5dd20421dfb0c4918d86df4 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 30 Sep 2025 18:39:14 -0700 Subject: [PATCH] brw: Only skip SIMD widths based on pressure if an smaller one compiled Sometimes the compute shader workgroup size requires a larger SIMD width than the minimum in order to fit in the available threads. In that case we'll skip the SIMD8 shader, and need to try SIMD16 regardless of how the register pressure estimate looks. Fixes: 3af4e63061cd ("brw: Skip compilation of larger SIMDs when pressure is too high") Reviewed-by: Ian Romanick Tested-by: Ian Romanick Part-of: --- src/intel/compiler/brw_simd_selection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_simd_selection.cpp b/src/intel/compiler/brw_simd_selection.cpp index cfd5442e47b..c79f5a0bb96 100644 --- a/src/intel/compiler/brw_simd_selection.cpp +++ b/src/intel/compiler/brw_simd_selection.cpp @@ -103,7 +103,9 @@ brw_simd_should_compile(brw_simd_selection_state &state, unsigned simd) const unsigned min_simd = state.devinfo->ver >= 20 ? 1 : 0; - if (simd > min_simd && state.beyond_threshold[simd]) { + if (simd > min_simd && + state.beyond_threshold[simd] && + brw_simd_any_compiled(state)) { state.error[simd] = "estimated to be beyond the pressure threshold"; return false; }