diff --git a/.pick_status.json b/.pick_status.json index e1481fcf526..3d945fadc93 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -594,7 +594,7 @@ "description": "venus: enable VK_EXT_external_memory_acquire_unmodified if needed", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "969cb02de73f3b06c36428d6bbda51e52e64f910", "notes": null diff --git a/src/virtio/vulkan/vn_device.c b/src/virtio/vulkan/vn_device.c index a21e10a8526..40a2a3a0d72 100644 --- a/src/virtio/vulkan/vn_device.c +++ b/src/virtio/vulkan/vn_device.c @@ -333,6 +333,15 @@ vn_device_fix_create_info(const struct vn_device *dev, extra_exts[extra_count++] = VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME; } + /* see vn_cmd_set_external_acquire_unmodified */ + if (VN_PRESENT_SRC_INTERNAL_LAYOUT != VK_IMAGE_LAYOUT_PRESENT_SRC_KHR && + physical_dev->renderer_extensions + .EXT_external_memory_acquire_unmodified && + !app_exts->EXT_external_memory_acquire_unmodified && has_wsi) { + extra_exts[extra_count++] = + VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME; + } + if (app_exts->EXT_device_memory_report) { /* see vn_physical_device_get_native_extensions */ block_exts[block_count++] = VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME;