From 6eb082131599a56f88ba7bef8bb94f044b9e3356 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Mon, 6 Dec 2021 23:14:16 +0100 Subject: [PATCH] radv/winsys: Add queue family param to submit. Extracting it from the first CS will not go over well once we try submitting 0 of them. Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device.c | 16 ++++++++-------- src/amd/vulkan/radv_radeon_winsys.h | 2 +- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 359721ea48f..5e2f2201c62 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -4760,9 +4760,9 @@ radv_queue_submit_deferred(struct radv_deferred_queue_submission *submission, } if (!submission->cmd_buffer_count) { - result = queue->device->ws->cs_submit(ctx, queue->vk.index_in_family, - &queue->device->empty_cs[queue->vk.queue_family_index], 1, - NULL, NULL, &sem_info, false); + result = queue->device->ws->cs_submit( + ctx, queue->vk.queue_family_index, queue->vk.index_in_family, + &queue->device->empty_cs[queue->vk.queue_family_index], 1, NULL, NULL, &sem_info, false); if (result != VK_SUCCESS) goto fail; } else { @@ -4791,9 +4791,9 @@ radv_queue_submit_deferred(struct radv_deferred_queue_submission *submission, sem_info.cs_emit_wait = j == 0; sem_info.cs_emit_signal = j + advance == submission->cmd_buffer_count; - result = queue->device->ws->cs_submit(ctx, queue->vk.index_in_family, cs_array + j, advance, - initial_preamble, continue_preamble_cs, &sem_info, - can_patch); + result = queue->device->ws->cs_submit( + ctx, queue->vk.queue_family_index, queue->vk.index_in_family, cs_array + j, advance, + initial_preamble, continue_preamble_cs, &sem_info, can_patch); if (result != VK_SUCCESS) { free(cs_array); goto fail; @@ -5012,8 +5012,8 @@ radv_queue_internal_submit(struct radv_queue *queue, struct radeon_cmdbuf *cs) return false; result = - queue->device->ws->cs_submit(ctx, queue->vk.index_in_family, &cs, 1, - NULL, NULL, &sem_info, false); + queue->device->ws->cs_submit(ctx, queue->vk.queue_family_index, queue->vk.index_in_family, + &cs, 1, NULL, NULL, &sem_info, false); radv_free_sem_info(&sem_info); if (result != VK_SUCCESS) return false; diff --git a/src/amd/vulkan/radv_radeon_winsys.h b/src/amd/vulkan/radv_radeon_winsys.h index 9f12b6040c3..6f874e738be 100644 --- a/src/amd/vulkan/radv_radeon_winsys.h +++ b/src/amd/vulkan/radv_radeon_winsys.h @@ -273,7 +273,7 @@ struct radeon_winsys { void (*cs_grow)(struct radeon_cmdbuf *cs, size_t min_size); - VkResult (*cs_submit)(struct radeon_winsys_ctx *ctx, int queue_index, + VkResult (*cs_submit)(struct radeon_winsys_ctx *ctx, enum ring_type ring_type, int queue_index, struct radeon_cmdbuf **cs_array, unsigned cs_count, struct radeon_cmdbuf *initial_preamble_cs, struct radeon_cmdbuf *continue_preamble_cs, diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c index 2fbef1e0eb8..fd837760948 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -1169,17 +1169,17 @@ radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx, int queue_id } static VkResult -radv_amdgpu_winsys_cs_submit(struct radeon_winsys_ctx *_ctx, int queue_idx, - struct radeon_cmdbuf **cs_array, unsigned cs_count, +radv_amdgpu_winsys_cs_submit(struct radeon_winsys_ctx *_ctx, enum ring_type ring_type, + int queue_idx, struct radeon_cmdbuf **cs_array, unsigned cs_count, struct radeon_cmdbuf *initial_preamble_cs, struct radeon_cmdbuf *continue_preamble_cs, struct radv_winsys_sem_info *sem_info, bool can_patch) { - struct radv_amdgpu_cs *cs = radv_amdgpu_cs(cs_array[0]); + struct radv_amdgpu_ctx *ctx = radv_amdgpu_ctx(_ctx); VkResult result; assert(sem_info); - if (!cs->ws->use_ib_bos) { + if (!ctx->ws->use_ib_bos) { result = radv_amdgpu_winsys_cs_submit_sysmem(_ctx, queue_idx, sem_info, cs_array, cs_count, initial_preamble_cs, continue_preamble_cs); } else if (can_patch) {