hk: Enable VK_KHR_present_id[2] and VK_KHR_present_wait[2]

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 Honeykrisp already supports
since its inclusion into Mesa.

Successfully tested on Apple MacBookAir 2020 with M1 SoC on
top of KDE KWin 6.4 and GNOME mutter 48.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38069>
This commit is contained in:
Mario Kleiner
2025-10-27 03:42:55 +00:00
committed by Marge Bot
parent d1fe9a152e
commit 3ca1cee8b0
3 changed files with 22 additions and 6 deletions

View File

@@ -561,10 +561,10 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_pipeline_binary DONE (radv)
VK_KHR_pipeline_executable_properties DONE (anv, hk, nvk, panvk, hasvk, radv, tu, v3dv)
VK_KHR_pipeline_library DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_present_id DONE (anv, nvk, radv, tu, vn)
VK_KHR_present_id2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_wait DONE (anv, nvk, radv, tu, vn)
VK_KHR_present_wait2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_id DONE (anv, hk, nvk, radv, tu, vn)
VK_KHR_present_id2 DONE (anv, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_wait DONE (anv, hk, nvk, radv, tu, 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)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)

View File

@@ -2,3 +2,7 @@ VK_KHR_relaxed_block_layout on pvr
VK_KHR_storage_buffer_storage_class on pvr
VK_EXT_external_memory_acquire_unmodified on panvk
VK_EXT_discard_rectangles on NVK
VK_KHR_present_id on HoneyKrisp
VK_KHR_present_id2 on HoneyKrisp
VK_KHR_present_wait on HoneyKrisp
VK_KHR_present_wait2 on HoneyKrisp

View File

@@ -94,6 +94,12 @@ hk_get_device_extensions(const struct hk_instance *instance,
.KHR_multiview = true,
.KHR_pipeline_executable_properties = true,
.KHR_pipeline_library = true,
#ifdef HK_USE_WSI_PLATFORM
.KHR_present_id = true,
.KHR_present_id2 = true,
.KHR_present_wait = true,
.KHR_present_wait2 = true,
#endif
.KHR_push_descriptor = true,
.KHR_relaxed_block_layout = true,
.KHR_sampler_mirror_clamp_to_edge = true,
@@ -401,10 +407,16 @@ hk_get_device_features(
.pipelineExecutableInfo = true,
/* VK_KHR_present_id */
.presentId = false,
.presentId = true,
/* VK_KHR_present_id2 */
.presentId2 = true,
/* VK_KHR_present_wait */
.presentWait = false,
.presentWait = true,
/* VK_KHR_present_wait2 */
.presentWait2 = true,
/* VK_KHR_shader_clock */
.shaderSubgroupClock = false,