venus: support wsi maintenance1 extensions

Venus has long supported creating swapchain image alias via binding. So
below are exposed without extra work needed:
- VK_EXT_surface_maintenance1
- VK_EXT_swapchain_maintenance1

Test: dEQP-VK.wsi.*.maintenance1.*

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33782>
This commit is contained in:
Yiwei Zhang 2025-02-26 12:29:24 -08:00 committed by Marge Bot
parent 673a95e5b4
commit acd5497067
4 changed files with 7 additions and 2 deletions

View file

@ -651,8 +651,8 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn) VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv) VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv)
VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv) VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv)
VK_EXT_surface_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv) VK_EXT_surface_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_swapchain_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv) VK_EXT_swapchain_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_transform_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_EXT_transform_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (anv, lvp, nvk, radv, tu, vn) VK_EXT_vertex_input_dynamic_state DONE (anv, lvp, nvk, radv, tu, vn)

View file

@ -306,6 +306,8 @@ vn_device_fix_create_info(const struct vn_device *dev,
VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME; VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME;
block_exts[block_count++] = block_exts[block_count++] =
VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME; VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME;
block_exts[block_count++] =
VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME;
} }
if (app_exts->ANDROID_native_buffer) { if (app_exts->ANDROID_native_buffer) {

View file

@ -38,6 +38,7 @@ static const struct vk_instance_extension_table
.KHR_get_surface_capabilities2 = true, .KHR_get_surface_capabilities2 = true,
.KHR_surface = true, .KHR_surface = true,
.KHR_surface_protected_capabilities = true, .KHR_surface_protected_capabilities = true,
.EXT_surface_maintenance1 = true,
.EXT_swapchain_colorspace = true, .EXT_swapchain_colorspace = true,
#endif #endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR #ifdef VK_USE_PLATFORM_WAYLAND_KHR

View file

@ -317,6 +317,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
* See vn_physical_device_get_native_extensions. * See vn_physical_device_get_native_extensions.
*/ */
feats->deviceMemoryReport = true; feats->deviceMemoryReport = true;
feats->swapchainMaintenance1 = true;
/* Disable unsupported ExtendedDynamicState3Features */ /* Disable unsupported ExtendedDynamicState3Features */
if (exts->EXT_extended_dynamic_state3) { if (exts->EXT_extended_dynamic_state3) {
@ -1027,6 +1028,7 @@ vn_physical_device_get_native_extensions(
exts->KHR_incremental_present = true; exts->KHR_incremental_present = true;
exts->KHR_swapchain = true; exts->KHR_swapchain = true;
exts->KHR_swapchain_mutable_format = true; exts->KHR_swapchain_mutable_format = true;
exts->EXT_swapchain_maintenance1 = true;
} }
/* VK_EXT_pci_bus_info is required by common wsi to decide whether native /* VK_EXT_pci_bus_info is required by common wsi to decide whether native