From 34a09967d5a28f0a92c110684ad4878a48b0149e Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Tue, 16 Mar 2021 17:33:09 +0100 Subject: [PATCH] vkd3d: Prefer compute queues for TRANSFER. TRANSFER + CONCURRENT is generally death for compression. Signed-off-by: Hans-Kristian Arntzen --- libs/vkd3d/device.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 9b0fe0db..2d91eb64 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -1891,18 +1891,14 @@ static HRESULT vkd3d_select_queues(const struct vkd3d_instance *vkd3d_instance, info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE] = vkd3d_find_queue(count, queue_properties, VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VK_QUEUE_COMPUTE_BIT); - info->family_index[VKD3D_QUEUE_FAMILY_TRANSFER] = vkd3d_find_queue(count, queue_properties, - VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT, VK_QUEUE_TRANSFER_BIT); - info->family_index[VKD3D_QUEUE_FAMILY_SPARSE_BINDING] = vkd3d_find_queue(count, queue_properties, VK_QUEUE_SPARSE_BINDING_BIT, VK_QUEUE_SPARSE_BINDING_BIT); if (info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE] == VK_QUEUE_FAMILY_IGNORED) info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE] = info->family_index[VKD3D_QUEUE_FAMILY_GRAPHICS]; - if (info->family_index[VKD3D_QUEUE_FAMILY_TRANSFER] == VK_QUEUE_FAMILY_IGNORED) - info->family_index[VKD3D_QUEUE_FAMILY_TRANSFER] = info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE]; - + /* Prefer compute queues for transfer. When using concurrent sharing, DMA queue tends to force compression off. */ + info->family_index[VKD3D_QUEUE_FAMILY_TRANSFER] = info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE]; info->family_index[VKD3D_QUEUE_FAMILY_INTERNAL_COMPUTE] = info->family_index[VKD3D_QUEUE_FAMILY_COMPUTE]; if (single_queue)