venus: fix compatibility with older host drivers
Unlike on Android, KHR_swapchain may be advertised even when the host driver does not support EXT_image_drm_format_modifier and EXT_queue_family_foreign. Do not request those extensions when they are not supported. Signed-off-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11369>
This commit is contained in:
parent
84ec64c4e4
commit
c496dc1120
|
@ -3222,7 +3222,11 @@ 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) {
|
||||
if (!app_exts->EXT_image_drm_format_modifier) {
|
||||
/* 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) {
|
||||
extra_exts[extra_count++] =
|
||||
VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME;
|
||||
|
||||
|
@ -3233,7 +3237,11 @@ vn_device_fix_create_info(const struct vn_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
if (!app_exts->EXT_queue_family_foreign) {
|
||||
/* 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) {
|
||||
extra_exts[extra_count++] =
|
||||
VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue