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