Disable VK_EXT_fragment_density_map2 if no non-sampled image support

VK_EXT_fragment_density_map2 and VK_QCOM_fragment_density_map_offset depend on VK_EXT_fragment_density_map, so if RD disables it due to lack of VkPhysicalDeviceFragmentDensityMapFeaturesEXT::fragmentDensityMapNonSubsampledImages support (common on Mali) it needs to disable the others as well.
This commit is contained in:
Cam Mannett
2025-08-18 18:15:54 +09:00
committed by Baldur Karlsson
parent c62ebeae69
commit 3b80d8ed15
+7 -3
View File
@@ -2079,7 +2079,11 @@ VkResult WrappedVulkan::FilterDeviceExtensionProperties(VkPhysicalDevice physDev
// extensions with conditional support
filtered.removeIf([instDevInfo, physDev](const VkExtensionProperties &ext) {
if(!strcmp(ext.extensionName, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME))
// Anything that depends on VK_EXT_fragment_density_map will need disabling if the
// fragmentDensityMapNonSubsampledImages feature is not supported
if(!strcmp(ext.extensionName, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME) ||
!strcmp(ext.extensionName, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME) ||
!strcmp(ext.extensionName, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME))
{
// require GPDP2
if(instDevInfo->ext_KHR_get_physical_device_properties2)
@@ -2099,8 +2103,8 @@ VkResult WrappedVulkan::FilterDeviceExtensionProperties(VkPhysicalDevice physDev
{
RDCWARN(
"VkPhysicalDeviceFragmentDensityMapFeaturesEXT."
"fragmentDensityMapNonSubsampledImages is "
"false, can't support capture of VK_EXT_fragment_density_map");
"fragmentDensityMapNonSubsampledImages is false, can't support capture of %s",
ext.extensionName);
}
}