venus: expose KHR_present_id(2)/wait(2) support
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Venus does support these via common wsi.

Test: dEQP-VK.wsi.*.present_id_wait.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36834>
This commit is contained in:
Yiwei Zhang 2025-08-18 21:47:19 -07:00 committed by Marge Bot
parent fd0b41b98d
commit ec4cebbf2e
3 changed files with 17 additions and 5 deletions

View file

@ -558,10 +558,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, x11/display)
VK_KHR_present_id2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv)
VK_KHR_present_wait DONE (anv, nvk, radv, tu, x11/display)
VK_KHR_present_wait2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv)
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_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)

View file

@ -229,7 +229,7 @@ vn_device_fix_create_info(const struct vn_device *dev,
&physical_dev->renderer_extensions;
/* extra_exts and block_exts must not overlap */
const char *extra_exts[16];
const char *block_exts[16];
const char *block_exts[32];
uint32_t extra_count = 0;
uint32_t block_count = 0;
@ -258,6 +258,10 @@ vn_device_fix_create_info(const struct vn_device *dev,
if (app_exts->KHR_swapchain) {
/* see vn_physical_device_get_native_extensions */
block_exts[block_count++] = VK_KHR_PRESENT_ID_EXTENSION_NAME;
block_exts[block_count++] = VK_KHR_PRESENT_ID_2_EXTENSION_NAME;
block_exts[block_count++] = VK_KHR_PRESENT_WAIT_EXTENSION_NAME;
block_exts[block_count++] = VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME;
block_exts[block_count++] = VK_KHR_SWAPCHAIN_EXTENSION_NAME;
block_exts[block_count++] =
VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME;

View file

@ -412,6 +412,10 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
feats->deviceMemoryReport = true;
#ifdef VN_USE_WSI_PLATFORM
feats->presentId = true;
feats->presentId2 = true;
feats->presentWait = true;
feats->presentWait2 = true;
feats->swapchainMaintenance1 = true;
#endif
@ -1170,6 +1174,10 @@ vn_physical_device_get_native_extensions(
#ifdef VN_USE_WSI_PLATFORM
if (physical_dev->renderer_sync_fd.semaphore_importable) {
exts->KHR_incremental_present = true;
exts->KHR_present_id = true;
exts->KHR_present_id2 = true;
exts->KHR_present_wait = true;
exts->KHR_present_wait2 = true;
exts->KHR_swapchain = true;
exts->KHR_swapchain_mutable_format = true;
exts->EXT_hdr_metadata = true;