Mesa (main): venus: clean up vn_physical_device_get_native_extensions
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 15 18:29:47 UTC 2021
Module: Mesa
Branch: main
Commit: 84ec64c4e444101745b5d41ffa578a54008bd835
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=84ec64c4e444101745b5d41ffa578a54008bd835
Author: Chia-I Wu <olvaffe at gmail.com>
Date: Mon Jun 14 17:23:07 2021 -0700
venus: clean up vn_physical_device_get_native_extensions
Separate Android and non-Android paths. No real change.
Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11369>
---
src/virtio/vulkan/vn_device.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/virtio/vulkan/vn_device.c b/src/virtio/vulkan/vn_device.c
index 5502e5f31c9..93038f09b8a 100644
--- a/src/virtio/vulkan/vn_device.c
+++ b/src/virtio/vulkan/vn_device.c
@@ -1467,33 +1467,35 @@ vn_physical_device_get_native_extensions(
memset(exts, 0, sizeof(*exts));
/* see vn_physical_device_init_external_memory */
- if (renderer_exts->EXT_external_memory_dma_buf &&
- renderer_info->has_dma_buf_import) {
+ const bool can_external_mem = renderer_exts->EXT_external_memory_dma_buf &&
+ renderer_info->has_dma_buf_import;
+
#ifdef ANDROID
- if (renderer_exts->EXT_image_drm_format_modifier &&
- renderer_exts->EXT_queue_family_foreign &&
- instance->experimental.memoryResourceAllocationSize == VK_TRUE) {
- exts->ANDROID_external_memory_android_hardware_buffer = true;
- exts->ANDROID_native_buffer = true;
- }
-#else
- exts->KHR_external_memory_fd = true;
- exts->EXT_external_memory_dma_buf = true;
-#endif
+ if (can_external_mem && renderer_exts->EXT_image_drm_format_modifier &&
+ renderer_exts->EXT_queue_family_foreign &&
+ instance->experimental.memoryResourceAllocationSize == VK_TRUE) {
+ exts->ANDROID_external_memory_android_hardware_buffer = true;
+ exts->ANDROID_native_buffer = true;
}
-#ifdef ANDROID
+ /* we have a very poor implementation */
if (instance->experimental.globalFencing) {
exts->KHR_external_fence_fd = true;
exts->KHR_external_semaphore_fd = true;
}
-#endif
+#else /* ANDROID */
+ if (can_external_mem) {
+ exts->KHR_external_memory_fd = true;
+ exts->EXT_external_memory_dma_buf = true;
+ }
#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;
#endif
+#endif /* ANDROID */
}
static void
More information about the mesa-commit
mailing list