Module: Mesa
Branch: staging/22.3
Commit: 17457e560e975dbf6fdc26082c08315a58355229
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=17457e560e975dbf6fdc26082c08315a58355229

Author: Rhys Perry <[email protected]>
Date:   Wed Jan 25 18:00:54 2023 +0000

radv: set state.vbo_misaligned_mask_invalid in radv_bind_vs_input_state

Found by inspection. Something probably hangs because of this, but I don't
know what.

Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Tatsuyuki Ishi <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Fixes: c199a5160a0 ("radv: bind the VS input state for prologs created with 
GPL")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20913>
(cherry picked from commit 10a5035c836a852fcdc7a4532d9ec1af5fd3464d)

---

 .pick_status.json                | 2 +-
 src/amd/vulkan/radv_cmd_buffer.c | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index c841e61a2d4..9958606bce2 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -355,7 +355,7 @@
         "description": "radv: set state.vbo_misaligned_mask_invalid in 
radv_bind_vs_input_state",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "c199a5160a08b118df6ba6d3bb211f5e2debcf83"
     },
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 3c584274579..6b2e8809361 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -5374,6 +5374,12 @@ radv_bind_vs_input_state(struct radv_cmd_buffer 
*cmd_buffer,
 
    cmd_buffer->state.dynamic_vs_input = *src;
 
+   if (cmd_buffer->device->physical_device->rad_info.gfx_level == GFX6 ||
+       cmd_buffer->device->physical_device->rad_info.gfx_level >= GFX10) {
+      cmd_buffer->state.vbo_misaligned_mask = 0;
+      cmd_buffer->state.vbo_misaligned_mask_invalid = src->attribute_mask;
+   }
+
    cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_VERTEX_INPUT;
 }
 

Reply via email to