radv: add support for querying which formats support texture gather LOD

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5147>
This commit is contained in:
Samuel Pitoiset 2020-05-19 15:05:32 +02:00
parent 94570e87bd
commit 2e265b94a2
1 changed files with 12 additions and 0 deletions

View File

@ -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: