From 2e265b94a2b7a8b681a95d512ad991d6ae3fb69a Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 19 May 2020 15:05:32 +0200 Subject: [PATCH] radv: add support for querying which formats support texture gather LOD Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_formats.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index badfcc4f72f..2e753f47be8 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -1380,6 +1380,7 @@ VkResult radv_GetPhysicalDeviceImageFormatProperties2( VkExternalImageFormatProperties *external_props = NULL; struct VkAndroidHardwareBufferUsageANDROID *android_usage = NULL; VkSamplerYcbcrConversionImageFormatProperties *ycbcr_props = NULL; + VkTextureLODGatherFormatPropertiesAMD *texture_lod_props = NULL; VkResult result; VkFormat format = radv_select_android_external_format(base_info->pNext, base_info->format); @@ -1411,6 +1412,9 @@ VkResult radv_GetPhysicalDeviceImageFormatProperties2( case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: android_usage = (void *) s; break; + case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: + texture_lod_props = (void *) s; + break; default: break; } @@ -1454,6 +1458,14 @@ VkResult radv_GetPhysicalDeviceImageFormatProperties2( ycbcr_props->combinedImageSamplerDescriptorCount = vk_format_get_plane_count(format); } + if (texture_lod_props) { + if (physical_device->rad_info.chip_class >= GFX9) { + texture_lod_props->supportsTextureGatherLODBiasAMD = true; + } else { + texture_lod_props->supportsTextureGatherLODBiasAMD = !vk_format_is_int(format); + } + } + return VK_SUCCESS; fail: