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;