ir3, tu, freedreno: Plumb through round-robin mode

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41562>
This commit is contained in:
Connor Abbott 2026-05-12 19:17:09 -04:00 committed by Marge Bot
parent 61b0130291
commit 8a67ad65ae
4 changed files with 4 additions and 0 deletions

View file

@ -604,6 +604,7 @@ create_variant(struct ir3_shader *shader, const struct ir3_shader_key *key,
if (ir3_shader_compute(v)) {
v->cs.force_linear_dispatch = shader->cs.force_linear_dispatch;
v->cs.round_robin_mode = shader->nir->info.occupancy_bounded_workgroup_fairness;
v->local_size[0] = shader->nir->info.workgroup_size[0];
v->local_size[1] = shader->nir->info.workgroup_size[1];

View file

@ -961,6 +961,7 @@ struct ir3_shader_variant {
struct {
unsigned req_local_mem;
bool force_linear_dispatch;
bool round_robin_mode;
uint32_t local_invocation_id;
uint32_t work_group_id;
} cs;

View file

@ -1750,6 +1750,7 @@ tu6_emit_xs(struct tu_crb &crb,
.fullregfootprint = xs->info.max_reg + 1,
.branchstack = ir3_shader_branchstack_hw(xs),
.threadsize = thrsz,
.computerrmodeen = xs->cs.round_robin_mode,
.earlypreamble = xs->early_preamble,
.mergedregs = xs->mergedregs, ));
crb.add(A6XX_SP_CS_INSTR_SIZE(xs->instrlen));

View file

@ -230,6 +230,7 @@ emit_shader_regs(struct fd_screen *screen, fd_cs &cs, const struct ir3_shader_va
.fullregfootprint = so->info.max_reg + 1,
.branchstack = ir3_shader_branchstack_hw(so),
.threadsize = thrsz,
.computerrmodeen = so->cs.round_robin_mode,
.earlypreamble = so->early_preamble,
.mergedregs = so->mergedregs,
));