Module: Mesa
Branch: 23.3
Commit: 421a8aaff1e358144b287db168186540f988556a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=421a8aaff1e358144b287db168186540f988556a

Author: Rhys Perry <pendingchao...@gmail.com>
Date:   Tue Oct  3 15:59:59 2023 +0100

ac/nir: fix partial mesh shader output writes on GFX11

Fixes dEQP-VK.mesh_shader.ext.smoke.monolithic.mesh_shader_triangle with
nir_opt_combine_stores disabled.

Signed-off-by: Rhys Perry <pendingchao...@gmail.com>
Reviewed-by: Timur Kristóf <timur.kris...@gmail.com>
Fixes: 240e16fc8e27 ("ac/nir/ngg: Use attribute ring for mesh shader params.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25530>
(cherry picked from commit 2d98236dd525622527df22179756f7b0f1466afa)

---

 .pick_status.json                 | 2 +-
 src/amd/common/ac_nir_lower_ngg.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 3d0fa15635d..59a62797394 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -64,7 +64,7 @@
         "description": "ac/nir: fix partial mesh shader output writes on 
GFX11",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "240e16fc8e27ba76afa1bf5adbd6d70c680027ac",
         "notes": null
diff --git a/src/amd/common/ac_nir_lower_ngg.c 
b/src/amd/common/ac_nir_lower_ngg.c
index eaa675bf13e..19291338128 100644
--- a/src/amd/common/ac_nir_lower_ngg.c
+++ b/src/amd/common/ac_nir_lower_ngg.c
@@ -3903,6 +3903,7 @@ ms_store_arrayed_output_intrin(nir_builder *b,
       nir_def *soffset = nir_load_ring_attr_offset_amd(b);
       nir_store_buffer_amd(b, store_val, ring, base_addr_off, soffset, 
arr_index,
                            .base = const_off + param_offset * 16,
+                           .write_mask = write_mask,
                            .memory_modes = nir_var_shader_out,
                            .access = ACCESS_COHERENT | ACCESS_IS_SWIZZLED_AMD);
    } else if (out_mode == ms_out_mode_var) {

Reply via email to