zink: remove thread_queue
I had originally intended to hook this up properly with synchronization et al, but I didn't do it, and now it's seeming less smart anyway, so let's remove the footgun Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066>
This commit is contained in:

committed by
Marge Bot

parent
cba6da2b21
commit
f5ac058812
@@ -239,7 +239,6 @@ create_batch_state(struct zink_context *ctx)
|
|||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
util_queue_fence_init(&bs->flush_completed);
|
util_queue_fence_init(&bs->flush_completed);
|
||||||
bs->queue = screen->threaded ? screen->thread_queue : screen->queue;
|
|
||||||
|
|
||||||
return bs;
|
return bs;
|
||||||
fail:
|
fail:
|
||||||
@@ -414,7 +413,7 @@ submit_queue(void *data, void *gdata, int thread_index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
simple_mtx_lock(&screen->queue_lock);
|
simple_mtx_lock(&screen->queue_lock);
|
||||||
if (VKSCR(QueueSubmit)(bs->queue, num_si, num_si == 2 ? si : &si[1], VK_NULL_HANDLE) != VK_SUCCESS) {
|
if (VKSCR(QueueSubmit)(screen->queue, num_si, num_si == 2 ? si : &si[1], VK_NULL_HANDLE) != VK_SUCCESS) {
|
||||||
mesa_loge("ZINK: vkQueueSubmit failed");
|
mesa_loge("ZINK: vkQueueSubmit failed");
|
||||||
bs->is_device_lost = true;
|
bs->is_device_lost = true;
|
||||||
}
|
}
|
||||||
|
@@ -102,7 +102,6 @@ struct zink_batch_state {
|
|||||||
struct util_dynarray wait_semaphores; //external wait semaphores
|
struct util_dynarray wait_semaphores; //external wait semaphores
|
||||||
struct util_dynarray wait_semaphore_stages; //external wait semaphores
|
struct util_dynarray wait_semaphore_stages; //external wait semaphores
|
||||||
|
|
||||||
VkQueue queue; //duplicated from batch for threading
|
|
||||||
VkSemaphore present;
|
VkSemaphore present;
|
||||||
struct zink_resource *swapchain;
|
struct zink_resource *swapchain;
|
||||||
struct util_dynarray acquires;
|
struct util_dynarray acquires;
|
||||||
|
@@ -737,9 +737,7 @@ buffer_commit_single(struct zink_screen *screen, struct zink_resource *res, stru
|
|||||||
sparse_bind[0].pBinds = &mem_bind;
|
sparse_bind[0].pBinds = &mem_bind;
|
||||||
sparse_bind[1].pBinds = &mem_bind;
|
sparse_bind[1].pBinds = &mem_bind;
|
||||||
|
|
||||||
VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue;
|
VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE);
|
||||||
|
|
||||||
VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE);
|
|
||||||
return zink_screen_handle_vkresult(screen, ret);
|
return zink_screen_handle_vkresult(screen, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -866,9 +864,7 @@ texture_commit_single(struct zink_screen *screen, struct zink_resource *res, VkS
|
|||||||
sparse_ibind.pBinds = ibind;
|
sparse_ibind.pBinds = ibind;
|
||||||
sparse.pImageBinds = &sparse_ibind;
|
sparse.pImageBinds = &sparse_ibind;
|
||||||
|
|
||||||
VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue;
|
VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE);
|
||||||
|
|
||||||
VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE);
|
|
||||||
return zink_screen_handle_vkresult(screen, ret);
|
return zink_screen_handle_vkresult(screen, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -892,9 +888,7 @@ texture_commit_miptail(struct zink_screen *screen, struct zink_resource *res, st
|
|||||||
mem_bind.flags = 0;
|
mem_bind.flags = 0;
|
||||||
sparse_bind.pBinds = &mem_bind;
|
sparse_bind.pBinds = &mem_bind;
|
||||||
|
|
||||||
VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue;
|
VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE);
|
||||||
|
|
||||||
VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE);
|
|
||||||
return zink_screen_handle_vkresult(screen, ret);
|
return zink_screen_handle_vkresult(screen, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -96,7 +96,7 @@ zink_context_destroy(struct pipe_context *pctx)
|
|||||||
|
|
||||||
if (util_queue_is_initialized(&screen->flush_queue))
|
if (util_queue_is_initialized(&screen->flush_queue))
|
||||||
util_queue_finish(&screen->flush_queue);
|
util_queue_finish(&screen->flush_queue);
|
||||||
if (ctx->batch.state && !screen->device_lost && VKSCR(QueueWaitIdle)(ctx->batch.state->queue) != VK_SUCCESS)
|
if (ctx->batch.state && !screen->device_lost && VKSCR(QueueWaitIdle)(screen->queue) != VK_SUCCESS)
|
||||||
mesa_loge("ZINK: vkQueueWaitIdle failed");
|
mesa_loge("ZINK: vkQueueWaitIdle failed");
|
||||||
|
|
||||||
if (ctx->blitter)
|
if (ctx->blitter)
|
||||||
|
@@ -640,7 +640,7 @@ kopper_present(void *data, void *gdata, int thread_idx)
|
|||||||
cpi->info.pWaitSemaphores = NULL;
|
cpi->info.pWaitSemaphores = NULL;
|
||||||
cpi->info.waitSemaphoreCount = 0;
|
cpi->info.waitSemaphoreCount = 0;
|
||||||
}
|
}
|
||||||
VkResult error2 = VKSCR(QueuePresentKHR)(screen->thread_queue, &cpi->info);
|
VkResult error2 = VKSCR(QueuePresentKHR)(screen->queue, &cpi->info);
|
||||||
simple_mtx_unlock(&screen->queue_lock);
|
simple_mtx_unlock(&screen->queue_lock);
|
||||||
swapchain->last_present = cpi->image;
|
swapchain->last_present = cpi->image;
|
||||||
if (cpi->indefinite_acquire)
|
if (cpi->indefinite_acquire)
|
||||||
@@ -784,7 +784,7 @@ zink_kopper_present_readback(struct zink_context *ctx, struct zink_resource *res
|
|||||||
si.waitSemaphoreCount = !!acquire;
|
si.waitSemaphoreCount = !!acquire;
|
||||||
si.pWaitSemaphores = &acquire;
|
si.pWaitSemaphores = &acquire;
|
||||||
si.pSignalSemaphores = &present;
|
si.pSignalSemaphores = &present;
|
||||||
VkResult error = VKSCR(QueueSubmit)(screen->thread_queue, 1, &si, VK_NULL_HANDLE);
|
VkResult error = VKSCR(QueueSubmit)(screen->queue, 1, &si, VK_NULL_HANDLE);
|
||||||
if (!zink_screen_handle_vkresult(screen, error))
|
if (!zink_screen_handle_vkresult(screen, error))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@@ -1387,10 +1387,6 @@ init_queue(struct zink_screen *screen)
|
|||||||
{
|
{
|
||||||
simple_mtx_init(&screen->queue_lock, mtx_plain);
|
simple_mtx_init(&screen->queue_lock, mtx_plain);
|
||||||
VKSCR(GetDeviceQueue)(screen->dev, screen->gfx_queue, 0, &screen->queue);
|
VKSCR(GetDeviceQueue)(screen->dev, screen->gfx_queue, 0, &screen->queue);
|
||||||
if (screen->threaded && screen->max_queues > 1)
|
|
||||||
VKSCR(GetDeviceQueue)(screen->dev, screen->gfx_queue, 1, &screen->thread_queue);
|
|
||||||
else
|
|
||||||
screen->thread_queue = screen->queue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -160,7 +160,6 @@ struct zink_screen {
|
|||||||
uint32_t timestamp_valid_bits;
|
uint32_t timestamp_valid_bits;
|
||||||
VkDevice dev;
|
VkDevice dev;
|
||||||
VkQueue queue; //gfx+compute
|
VkQueue queue; //gfx+compute
|
||||||
VkQueue thread_queue; //gfx+compute
|
|
||||||
simple_mtx_t queue_lock;
|
simple_mtx_t queue_lock;
|
||||||
VkDebugUtilsMessengerEXT debugUtilsCallbackHandle;
|
VkDebugUtilsMessengerEXT debugUtilsCallbackHandle;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user