From 2c122d478b4ece422da1a4187fc0ad86d9eaf690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 7 Apr 2025 21:40:03 -0400 Subject: [PATCH] ac/nir: set X=0 for task->mesh shader dispatch when Y or Z is 0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The code set X=0 when Y and Z is 0, not "or". Reviewed-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/common/nir/ac_nir_lower_taskmesh_io_to_mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/common/nir/ac_nir_lower_taskmesh_io_to_mem.c b/src/amd/common/nir/ac_nir_lower_taskmesh_io_to_mem.c index 015ee36a33d..0e7c8319dae 100644 --- a/src/amd/common/nir/ac_nir_lower_taskmesh_io_to_mem.c +++ b/src/amd/common/nir/ac_nir_lower_taskmesh_io_to_mem.c @@ -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);