v3dv: Enable VK_KHR_present_id and VK_KHR_present_wait

These extensions are implemented in shared Vulkan/WSI code and
not driver specific. A Vulkan driver just needs to support
VK_KHR_timeline_semaphore, which v3dv already supports via
emulated timeline semaphores since April 2022.

Successfully tested on RaspberryPi 4/400.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40696>
This commit is contained in:
Mario Kleiner 2026-03-29 21:05:44 +02:00 committed by Marge Bot
parent b68037473a
commit a0671119ad
3 changed files with 12 additions and 4 deletions

View file

@ -567,9 +567,9 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_pipeline_binary DONE (anv, hk, nvk, panvk, radv)
VK_KHR_pipeline_executable_properties DONE (anv, hasvk, hk, nvk, panvk, pvr, radv, tu, v3dv)
VK_KHR_pipeline_library DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_present_id DONE (anv, hk, nvk, panvk, radv, tu, vn)
VK_KHR_present_id DONE (anv, hk, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_present_id2 DONE (anv, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_wait DONE (anv, hk, nvk, panvk, radv, tu, vn)
VK_KHR_present_wait DONE (anv, hk, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_present_wait2 DONE (anv, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)

View file

@ -8,8 +8,8 @@ VK_EXT_blend_operation_advanced on lavapipe
VK_KHR_get_surface_capabilities2 on panvk
VK_KHR_get_display_properties2 on panvk
VK_EXT_acquire_drm_display on panvk
VK_KHR_present_id on panvk
VK_KHR_present_wait on panvk
VK_KHR_present_id on panvk, v3dv
VK_KHR_present_wait on panvk, v3dv
VK_KHR_pipeline_executable_properties on pvr
VK_EXT_zero_initialize_device_memory on panvk
GL_EXT_shader_image_load_store on panfrost

View file

@ -204,7 +204,9 @@ get_device_extensions(const struct v3dv_physical_device *device,
.KHR_swapchain_maintenance1 = true,
.KHR_swapchain_mutable_format = true,
.KHR_incremental_present = true,
.KHR_present_id = true,
.KHR_present_id2 = true,
.KHR_present_wait = true,
.KHR_present_wait2 = true,
#endif
.KHR_variable_pointers = true,
@ -527,9 +529,15 @@ get_features(const struct v3dv_physical_device *physical_device,
/* VK_KHR_swapchain_maintenance1 */
.swapchainMaintenance1 = true,
/* VK_KHR_present_id */
.presentId = true,
/* VK_KHR_present_id2 */
.presentId2 = true,
/* VK_KHR_present_wait */
.presentWait = true,
/* VK_KHR_present_wait2 */
.presentWait2 = true,
#endif