diff --git a/docs/features.txt b/docs/features.txt index 8458e575b43..a6f1f5b7ffe 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -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) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index bdc0ca6b64b..439db63ffa7 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -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);