Module: Mesa
Branch: main
Commit: c876e99aa448d73be8ab8f2de276bab4afe8b228
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c876e99aa448d73be8ab8f2de276bab4afe8b228

Author: Timur Kristóf <[email protected]>
Date:   Thu Mar 30 18:51:13 2023 +0200

radv/amdgpu: Unchain CS array in queue code not in winsys.

Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22220>

---

 src/amd/vulkan/radv_queue.c                   | 2 ++
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_queue.c b/src/amd/vulkan/radv_queue.c
index 5e7bfb5b741..221c94a2ffb 100644
--- a/src/amd/vulkan/radv_queue.c
+++ b/src/amd/vulkan/radv_queue.c
@@ -1716,11 +1716,13 @@ radv_queue_submit_normal(struct radv_queue *queue, 
struct vk_queue_submit *submi
 
          /* ACE needs to be first because the last CS must match the queue's 
IP type. */
          if (radv_cmd_buffer_needs_ace(cmd_buffer)) {
+            queue->device->ws->cs_unchain(cmd_buffer->ace_internal.cs);
             cs_array[num_submitted_cs++] = cmd_buffer->ace_internal.cs;
             submit_ace = true;
          }
 
          can_patch &= !(cmd_buffer->usage_flags & 
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT);
+         queue->device->ws->cs_unchain(cmd_buffer->cs);
          cs_array[num_submitted_cs++] = cmd_buffer->cs;
          cs_idx = num_submitted_cs - 1;
       }
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index fb56d6fcdb9..65dac75759d 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -1062,7 +1062,6 @@ radv_amdgpu_winsys_cs_submit_fallback(struct 
radv_amdgpu_ctx *ctx, int queue_idx
       struct radv_amdgpu_cs *cs = radv_amdgpu_cs(cs_array[i]);
 
       ibs[i + preamble_count] = cs->ib;
-      radv_amdgpu_cs_unchain(&cs->base);
 
       if (uses_shadow_regs && cs->ib.ip_type == AMDGPU_HW_IP_GFX)
          cs->ib.flags |= AMDGPU_IB_FLAG_PREEMPT;

Reply via email to