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: 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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user