brw: Only skip SIMD widths based on pressure if an smaller one compiled
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

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: 3af4e63061 ("brw: Skip compilation of larger SIMDs when pressure is too high")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37649>
This commit is contained in:
Kenneth Graunke 2025-09-30 18:39:14 -07:00
parent 3b68d122c8
commit 29d30c6f3d

View file

@ -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;
}