diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 1285c4eeb68..95a2a0569cc 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -161,7 +161,8 @@ namespace dxvk { DxvkAdapterQueueIndices queues; queues.graphics = graphicsQueue; queues.transfer = transferQueue; - queues.sparse = sparseQueue; + queues.sparse = sparseQueue; + queues.compute = computeQueue; return queues; } @@ -465,6 +466,7 @@ namespace dxvk { DxvkAdapterQueueIndices queueFamilies = findQueueFamilies(); queueFamiliySet.insert(queueFamilies.graphics); queueFamiliySet.insert(queueFamilies.transfer); + queueFamiliySet.insert(queueFamilies.compute); if (queueFamilies.sparse != VK_QUEUE_FAMILY_IGNORED) queueFamiliySet.insert(queueFamilies.sparse); @@ -472,11 +474,11 @@ namespace dxvk { this->logQueueFamilies(queueFamilies); for (uint32_t family : queueFamiliySet) { - VkDeviceQueueCreateInfo graphicsQueue = { VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO }; - graphicsQueue.queueFamilyIndex = family; - graphicsQueue.queueCount = 1; - graphicsQueue.pQueuePriorities = &queuePriority; - queueInfos.push_back(graphicsQueue); + VkDeviceQueueCreateInfo queueCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO }; + queueCreateInfo.queueFamilyIndex = family; + queueCreateInfo.queueCount = 1; + queueCreateInfo.pQueuePriorities = &queuePriority; + queueInfos.push_back(queueCreateInfo); } VkDeviceCreateInfo info = { VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, enabledFeatures.core.pNext }; @@ -1347,7 +1349,8 @@ namespace dxvk { Logger::info(str::format("Queue families:", "\n Graphics : ", queues.graphics, "\n Transfer : ", queues.transfer, - "\n Sparse : ", queues.sparse != VK_QUEUE_FAMILY_IGNORED ? str::format(queues.sparse) : "n/a")); + "\n Sparse : ", queues.sparse != VK_QUEUE_FAMILY_IGNORED ? str::format(queues.sparse) : "n/a", + "\n Compute : ", queues.compute != VK_QUEUE_FAMILY_IGNORED ? str::format(queues.compute) : "n/a")); } diff --git a/src/dxvk/dxvk_adapter.h b/src/dxvk/dxvk_adapter.h index f545849a9f7..3d1830f98b5 100644 --- a/src/dxvk/dxvk_adapter.h +++ b/src/dxvk/dxvk_adapter.h @@ -56,6 +56,7 @@ namespace dxvk { uint32_t graphics; uint32_t transfer; uint32_t sparse; + uint32_t compute; };