tu: Implement VK_KHR_unified_image_layouts
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Turnip does not use any image layouts aside from UNDEFINED, therefore, we can expose this extension.

Signed-off-by: Autumn Ashton <misyl@froggi.es>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35536>
This commit is contained in:
Autumn Ashton 2025-06-15 15:27:01 +01:00
parent 79656dbcd3
commit 5b50f229f0
3 changed files with 7 additions and 2 deletions

View file

@ -573,7 +573,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_surface_protected_capabilities DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_swapchain DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_unified_image_layouts DONE (radv/gfx11+)
VK_KHR_unified_image_layouts DONE (radv/gfx11+, tu)
VK_KHR_wayland_surface DONE (anv, dzn, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, hk, nvk, hasvk, radv, tu, v3dv, vn)
VK_KHR_win32_keyed_mutex not started

View file

@ -45,7 +45,7 @@ VK_EXT_depth_clamp_zero_one on panvk
VK_KHR_depth_clamp_zero_one on panvk
VK_EXT_depth_clip_control on panvk
VK_KHR_maintenance9 on RADV
VK_KHR_unified_image_layouts on RADV (RDNA3+)
VK_KHR_unified_image_layouts on RADV (RDNA3+) and tu
VK_KHR_vulkan_memory_model on panvk
VK_KHR_present_wait2
VK_EXT_descriptor_indexing on panvk/v10+

View file

@ -258,6 +258,7 @@ get_device_extensions(const struct tu_physical_device *device,
#endif
.KHR_synchronization2 = true,
.KHR_timeline_semaphore = true,
.KHR_unified_image_layouts = true,
.KHR_uniform_buffer_standard_layout = true,
.KHR_variable_pointers = true,
.KHR_vertex_attribute_divisor = true,
@ -773,6 +774,10 @@ tu_get_features(struct tu_physical_device *pdevice,
/* VK_EXT_fragment_density_map_offset */
features->fragmentDensityMapOffset = true;
/* VK_KHR_unified_layouts */
features->unifiedImageLayouts = true;
features->unifiedImageLayoutsVideo = false;
}
static void