venus: require necessary extensions for common wsi support

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17975>
This commit is contained in:
Yiwei Zhang 2022-08-04 21:15:48 +00:00 committed by Marge Bot
parent 9c5a7ffbd8
commit 7925340220
3 changed files with 9 additions and 18 deletions

View file

@ -220,11 +220,7 @@ vn_device_fix_create_info(const struct vn_device *dev,
app_exts->KHR_swapchain || app_exts->ANDROID_native_buffer ||
app_exts->ANDROID_external_memory_android_hardware_buffer;
if (has_wsi) {
/* KHR_swapchain may be advertised without the renderer support for
* EXT_image_drm_format_modifier
*/
if (!app_exts->EXT_image_drm_format_modifier &&
physical_dev->renderer_extensions.EXT_image_drm_format_modifier) {
if (!app_exts->EXT_image_drm_format_modifier) {
extra_exts[extra_count++] =
VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME;
@ -235,11 +231,7 @@ vn_device_fix_create_info(const struct vn_device *dev,
}
}
/* XXX KHR_swapchain may be advertised without the renderer support for
* EXT_queue_family_foreign
*/
if (!app_exts->EXT_queue_family_foreign &&
physical_dev->renderer_extensions.EXT_queue_family_foreign) {
if (!app_exts->EXT_queue_family_foreign) {
extra_exts[extra_count++] =
VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME;
}

View file

@ -934,10 +934,12 @@ vn_physical_device_get_native_extensions(
}
#ifdef VN_USE_WSI_PLATFORM
/* XXX we should check for EXT_queue_family_foreign */
exts->KHR_incremental_present = true;
exts->KHR_swapchain = true;
exts->KHR_swapchain_mutable_format = true;
if (renderer_exts->EXT_image_drm_format_modifier &&
renderer_exts->EXT_queue_family_foreign) {
exts->KHR_incremental_present = true;
exts->KHR_swapchain = true;
exts->KHR_swapchain_mutable_format = true;
}
#endif
#endif /* ANDROID */

View file

@ -85,10 +85,7 @@ vn_wsi_init(struct vn_physical_device *physical_dev)
if (result != VK_SUCCESS)
return result;
if (physical_dev->base.base.supported_extensions
.EXT_image_drm_format_modifier)
physical_dev->wsi_device.supports_modifiers = true;
physical_dev->wsi_device.supports_modifiers = true;
physical_dev->base.base.wsi_device = &physical_dev->wsi_device;
return VK_SUCCESS;