anv: Implement VK_AMD_texture_gather_bias_lod

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27447>
This commit is contained in:
Sagar Ghuge 2023-02-28 14:03:48 -08:00 committed by Marge Bot
parent 269d2c4a3f
commit 5e800ab6f7
4 changed files with 12 additions and 1 deletions

View file

@ -653,7 +653,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_AMD_shader_fragment_mask DONE (radv/gfx10.3-)
VK_AMD_shader_image_load_store_lod DONE (radv)
VK_AMD_shader_trinary_minmax DONE (radv)
VK_AMD_texture_gather_bias_lod DONE (radv)
VK_AMD_texture_gather_bias_lod DONE (anv, radv)
VK_ARM_rasterization_order_attachment_access DONE (lvp, tu)
VK_EXT_mutable_descriptor_type DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_swapchain_colorspace DONE (radv, anv, tu)

View file

@ -409,6 +409,7 @@ get_device_extensions(const struct anv_physical_device *device,
.EXT_vertex_input_dynamic_state = true,
.EXT_ycbcr_image_arrays = true,
.AMD_buffer_marker = true,
.AMD_texture_gather_bias_lod = device->info.ver >= 20,
#if DETECT_OS_ANDROID
.ANDROID_external_memory_android_hardware_buffer = true,
.ANDROID_native_buffer = true,

View file

@ -1591,6 +1591,7 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties2(
VkExternalImageFormatProperties *external_props = NULL;
VkSamplerYcbcrConversionImageFormatProperties *ycbcr_props = NULL;
UNUSED VkAndroidHardwareBufferUsageANDROID *android_usage = NULL;
VkTextureLODGatherFormatPropertiesAMD *texture_lod_gather_props = NULL;
VkResult result;
bool from_wsi = false;
@ -1631,6 +1632,9 @@ VkResult anv_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_gather_props = (void *) s;
break;
default:
anv_debug_ignored_stype(s->sType);
break;
@ -1790,6 +1794,11 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties2(
}
}
if (texture_lod_gather_props) {
texture_lod_gather_props->supportsTextureGatherLODBiasAMD =
physical_device->info.ver >= 20;
}
return VK_SUCCESS;
fail:

View file

@ -145,6 +145,7 @@ anv_shader_stage_to_nir(struct anv_device *device,
const bool rt_enabled = ANV_SUPPORT_RT && pdevice->info.has_ray_tracing;
const struct spirv_to_nir_options spirv_options = {
.caps = {
.amd_image_gather_bias_lod = pdevice->info.ver >= 20,
.cooperative_matrix = anv_has_cooperative_matrix(pdevice),
.demote_to_helper_invocation = true,
.derivative_group = true,