radv: adjust minImageTransferGranularity for transfer queue

It's required with VK_KHR_maintenance11. This allows way more transfer
queue related CTS tests to run and all issues I found should already
be fixed.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
Samuel Pitoiset 2026-02-20 08:57:50 +01:00
parent cfcd106740
commit 363caf2cd8

View file

@ -2920,7 +2920,7 @@ radv_get_physical_device_queue_family_properties(struct radv_physical_device *pd
radv_queue_family_protected_flag(pdev, RADV_QUEUE_TRANSFER),
.queueCount = pdev->info.ip[AMD_IP_SDMA].num_queues,
.timestampValidBits = 64,
.minImageTransferGranularity = (VkExtent3D){16, 16, 8},
.minImageTransferGranularity = (VkExtent3D){1, 1, 1},
};
idx++;
}
@ -3029,6 +3029,16 @@ radv_GetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice, ui
prop->optimalImageTransferToQueueFamilies = ~0;
break;
}
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR: {
VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR *prop =
(VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR *)ext;
if (pQueueFamilyProperties[i].queueFamilyProperties.queueFlags & VK_QUEUE_TRANSFER_BIT) {
prop->optimalImageTransferGranularity = (VkExtent3D){16, 16, 8};
} else {
prop->optimalImageTransferGranularity = (VkExtent3D){1, 1, 1};
}
break;
}
default:
break;
}