goto fail;
util_queue_fence_init(&bs->flush_completed);
- bs->queue = screen->threaded ? screen->thread_queue : screen->queue;
return bs;
fail:
}
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;
}
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;
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);
}
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);
}
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);
}
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)
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)
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;
{
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
uint32_t timestamp_valid_bits;
VkDevice dev;
VkQueue queue; //gfx+compute
- VkQueue thread_queue; //gfx+compute
simple_mtx_t queue_lock;
VkDebugUtilsMessengerEXT debugUtilsCallbackHandle;