ac/nir: set X=0 for task->mesh shader dispatch when Y or Z is 0

The code set X=0 when Y and Z is 0, not "or".

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34432>
This commit is contained in:
Marek Olšák 2025-04-07 21:40:03 -04:00 committed by Marge Bot
parent 963147d7fd
commit 2c122d478b

View file

@ -191,7 +191,7 @@ lower_task_launch_mesh_workgroups(nir_builder *b,
/* When either Y or Z are 0, also set X to 0.
* Not necessary, but speeds up the job of the CP.
*/
x = nir_bcsel(b, nir_ieq_imm(b, nir_ior(b, y, z), 0), nir_imm_int(b, 0), x);
x = nir_bcsel(b, nir_ior(b, nir_ieq_imm(b, y, 0), nir_ieq_imm(b, z, 0)), nir_imm_int(b, 0), x);
/* Dispatch dimensions of mesh shader workgroups. */
task_write_draw_ring(b, nir_vec3(b, x, y, z), 0, s);