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);
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;
}
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: