nvk: Advertise VK_EXT_image_drm_format_modifier

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9636
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9480
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24795>
This commit is contained in:
Faith Ekstrand 2024-05-02 20:46:02 -05:00 committed by Marge Bot
parent d8e200c0d9
commit cd428e01d7
2 changed files with 6 additions and 2 deletions

View file

@ -590,7 +590,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_headless_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_image_compression_control DONE (radv)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, radv/gfx9+, tu, v3dv, vn)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, nvk, radv/gfx9+, tu, v3dv, vn)
VK_EXT_image_sliced_view_of_3d DONE (anv, nvk, radv/gfx10+)
VK_EXT_image_view_min_lod DONE (anv, hasvk, nvk, radv, tu, vn)
VK_EXT_index_type_uint8 DONE (anv, hasvk, nvk, lvp, panvk, pvr, radv/gfx8+, tu, v3dv, vn)

View file

@ -76,6 +76,7 @@ nvk_get_vk_version(const struct nv_device_info *info)
static void
nvk_get_device_extensions(const struct nvk_instance *instance,
const struct nv_device_info *info,
bool has_tiled_bos,
struct vk_device_extension_table *ext)
{
*ext = (struct vk_device_extension_table) {
@ -185,6 +186,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
#ifdef VK_USE_PLATFORM_DISPLAY_KHR
.EXT_display_control = true,
#endif
.EXT_image_drm_format_modifier = has_tiled_bos,
.EXT_dynamic_rendering_unused_attachments = true,
.EXT_extended_dynamic_state = true,
.EXT_extended_dynamic_state2 = true,
@ -1194,8 +1196,10 @@ nvk_create_drm_physical_device(struct vk_instance *_instance,
vk_physical_device_dispatch_table_from_entrypoints(
&dispatch_table, &wsi_physical_device_entrypoints, false);
const bool has_tiled_bos = nouveau_ws_device_has_tiled_bo(ws_dev);
struct vk_device_extension_table supported_extensions;
nvk_get_device_extensions(instance, &info, &supported_extensions);
nvk_get_device_extensions(instance, &info, has_tiled_bos,
&supported_extensions);
struct vk_features supported_features;
nvk_get_device_features(&info, &supported_extensions, &supported_features);