From: Mike Blumenkrantz Date: Fri, 10 Jun 2022 18:54:55 +0000 (-0400) Subject: zink: remove thread_queue X-Git-Tag: upstream/22.3.5~7277 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f5ac058812c6fde53b0c1d826a332743afadb1aa;p=platform%2Fupstream%2Fmesa.git 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 Part-of: --- diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index 22ee110..29221e2 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -239,7 +239,6 @@ create_batch_state(struct zink_context *ctx) goto fail; util_queue_fence_init(&bs->flush_completed); - bs->queue = screen->threaded ? screen->thread_queue : screen->queue; return bs; fail: @@ -414,7 +413,7 @@ submit_queue(void *data, void *gdata, int thread_index) } 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"); bs->is_device_lost = true; } diff --git a/src/gallium/drivers/zink/zink_batch.h b/src/gallium/drivers/zink/zink_batch.h index a75efba..a6af00a 100644 --- a/src/gallium/drivers/zink/zink_batch.h +++ b/src/gallium/drivers/zink/zink_batch.h @@ -102,7 +102,6 @@ struct zink_batch_state { struct util_dynarray wait_semaphores; //external wait semaphores struct util_dynarray wait_semaphore_stages; //external wait semaphores - VkQueue queue; //duplicated from batch for threading VkSemaphore present; struct zink_resource *swapchain; struct util_dynarray acquires; diff --git a/src/gallium/drivers/zink/zink_bo.c b/src/gallium/drivers/zink/zink_bo.c index d4b48d1..21eba85 100644 --- a/src/gallium/drivers/zink/zink_bo.c +++ b/src/gallium/drivers/zink/zink_bo.c @@ -737,9 +737,7 @@ buffer_commit_single(struct zink_screen *screen, struct zink_resource *res, stru sparse_bind[0].pBinds = &mem_bind; sparse_bind[1].pBinds = &mem_bind; - VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue; - - VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE); + VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE); 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.pImageBinds = &sparse_ibind; - VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue; - - VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE); + VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE); 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; sparse_bind.pBinds = &mem_bind; - VkQueue queue = screen->threaded ? screen->thread_queue : screen->queue; - - VkResult ret = VKSCR(QueueBindSparse)(queue, 1, &sparse, VK_NULL_HANDLE); + VkResult ret = VKSCR(QueueBindSparse)(screen->queue, 1, &sparse, VK_NULL_HANDLE); return zink_screen_handle_vkresult(screen, ret); } diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 36f304f..38feb63 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -96,7 +96,7 @@ zink_context_destroy(struct pipe_context *pctx) if (util_queue_is_initialized(&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"); if (ctx->blitter) diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c index 9a1b650..d6a6ae4 100644 --- a/src/gallium/drivers/zink/zink_kopper.c +++ b/src/gallium/drivers/zink/zink_kopper.c @@ -640,7 +640,7 @@ kopper_present(void *data, void *gdata, int thread_idx) cpi->info.pWaitSemaphores = NULL; 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); swapchain->last_present = cpi->image; if (cpi->indefinite_acquire) @@ -784,7 +784,7 @@ zink_kopper_present_readback(struct zink_context *ctx, struct zink_resource *res si.waitSemaphoreCount = !!acquire; si.pWaitSemaphores = &acquire; 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)) return false; diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 1934983..941d81e 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1387,10 +1387,6 @@ init_queue(struct zink_screen *screen) { simple_mtx_init(&screen->queue_lock, mtx_plain); 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 diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index 6912716..e3350e0 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -160,7 +160,6 @@ struct zink_screen { uint32_t timestamp_valid_bits; VkDevice dev; VkQueue queue; //gfx+compute - VkQueue thread_queue; //gfx+compute simple_mtx_t queue_lock; VkDebugUtilsMessengerEXT debugUtilsCallbackHandle;