radv/amdgpu: Unchain CS array in queue code not in winsys.
authorTimur Kristóf <timur.kristof@gmail.com>
Thu, 30 Mar 2023 16:51:13 +0000 (18:51 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 5 Apr 2023 17:10:25 +0000 (17:10 +0000)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22220>

src/amd/vulkan/radv_queue.c
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c

index 5e7bfb5..221c94a 100644 (file)
@@ -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;
       }
index fb56d6f..65dac75 100644 (file)
@@ -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;