brw: Fix max_dispatch_width collection for CS with variable size

The intention of the original commit was to make all the shaders report
the same max_dispatch_width.  When CS has multiple variants, this was
not happening as expected.

Fixes: 2acc2f18ea ("intel/compiler: report max dispatch width statistic")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit e1745e0bd9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41402>
This commit is contained in:
Caio Oliveira 2026-04-23 00:03:20 -07:00 committed by Eric Engestrom
parent c0c4f09cbc
commit 54e1e88970
2 changed files with 3 additions and 4 deletions

View file

@ -3244,7 +3244,7 @@
"description": "brw: Fix max_dispatch_width collection for CS with variable size",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "2acc2f18ea74e5f59b1e6f67fec49fd0c6b1e466",
"notes": null

View file

@ -261,7 +261,8 @@ brw_compile_cs(const struct brw_compiler *compiler,
g.enable_debug(name);
}
uint32_t max_dispatch_width = 8u << (util_last_bit(prog_data->prog_mask) - 1);
const uint32_t max_dispatch_width =
8u << (util_last_bit(prog_data->prog_mask) - 1);
struct genisa_stats *stats = params->base.stats;
for (unsigned simd = 0; simd < 3; simd++) {
@ -274,8 +275,6 @@ brw_compile_cs(const struct brw_compiler *compiler,
prog_data->base.grf_used = MAX2(prog_data->base.grf_used,
v[simd]->grf_used);
max_dispatch_width = 8u << simd;
}
}