Module: Mesa Branch: staging/22.2 Commit: afb18f4dec6f01e77c9669227541db117fcc54e6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=afb18f4dec6f01e77c9669227541db117fcc54e6
Author: Yiwei Zhang <[email protected]> Date: Mon Aug 8 18:19:03 2022 +0000 venus: fix external memory ext filtering Fixes: 390722620e1 ("venus: clean up vn_device_fix_create_info") Signed-off-by: Yiwei Zhang <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17975> (cherry picked from commit 9c5a7ffbd8a696182647135ef32bddb347c277f2) --- .pick_status.json | 2 +- src/virtio/vulkan/vn_device.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 48534d193ca..4d8c45b0534 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3514,7 +3514,7 @@ "description": "venus: fix external memory ext filtering", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "390722620e139047c6b94f394caebb4c5676e6ce" }, diff --git a/src/virtio/vulkan/vn_device.c b/src/virtio/vulkan/vn_device.c index 9b65b06026e..25dd97e973d 100644 --- a/src/virtio/vulkan/vn_device.c +++ b/src/virtio/vulkan/vn_device.c @@ -270,15 +270,23 @@ vn_device_fix_create_info(const struct vn_device *dev, extra_exts[extra_count++] = VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME; } - FALLTHROUGH; + if (!app_exts->KHR_external_memory_fd) { + extra_exts[extra_count++] = + VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME; + } + break; case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: + if (app_exts->EXT_external_memory_dma_buf) { + block_exts[block_count++] = + VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME; + } if (!app_exts->KHR_external_memory_fd) { extra_exts[extra_count++] = VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME; } break; default: - /* TODO other handle types */ + unreachable("unexpected external memory handle type"); break; } }
