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 <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14097>
This commit is contained in:
parent
c03d258046
commit
6eb0821315
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue