From 68be040f4aec52d39f0f3b77236215e2385424e7 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 5 May 2020 12:49:13 +0200 Subject: [PATCH] [dxvk] Use compute queue for transfers if DMA queue is not available Affects RADV. Let's see if this works and does anything for performance. --- src/dxvk/dxvk_adapter.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index a2e900bc0c5..ee3b270f6d9 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -88,12 +88,19 @@ namespace dxvk { VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT); + uint32_t computeQueue = findQueueFamily( + VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, + VK_QUEUE_COMPUTE_BIT); + + if (computeQueue == VK_QUEUE_FAMILY_IGNORED) + computeQueue = graphicsQueue; + uint32_t transferQueue = findQueueFamily( VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT, VK_QUEUE_TRANSFER_BIT); if (transferQueue == VK_QUEUE_FAMILY_IGNORED) - transferQueue = graphicsQueue; + transferQueue = computeQueue; DxvkAdapterQueueIndices queues; queues.graphics = graphicsQueue;