From 37a2a5c5524dd76d1ba1e4d6ce801f0a75661a1d Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Fri, 10 Oct 2025 16:26:30 -0700 Subject: [PATCH] gfxstream: kumquat: opaque fd or dmabuf, not both So Mesa drivers actually don't like both: src/vulkan/runtime/vk_device_memory.c: """ case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: { const VkImportMemoryFdInfoKHR *fd_info = (void *)ext; if (fd_info->handleType) { assert(fd_info->handleType == VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT || fd_info->handleType == VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT); """ Reviewed-by: David Gilhooley Part-of: --- .../kumquat/vulkan-mapper/GfxStreamVulkanMapper.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gfxstream/guest/platform/kumquat/vulkan-mapper/GfxStreamVulkanMapper.cpp b/src/gfxstream/guest/platform/kumquat/vulkan-mapper/GfxStreamVulkanMapper.cpp index 430fda12ee8..17be2e3bfef 100644 --- a/src/gfxstream/guest/platform/kumquat/vulkan-mapper/GfxStreamVulkanMapper.cpp +++ b/src/gfxstream/guest/platform/kumquat/vulkan-mapper/GfxStreamVulkanMapper.cpp @@ -238,10 +238,11 @@ int32_t GfxStreamVulkanMapper::map(struct VulkanMapperData* mapData) { }; #elif DETECT_OS_LINUX - VkExternalMemoryHandleTypeFlagBits flagBits = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; + VkExternalMemoryHandleTypeFlagBits flagBits; if (mapData->handleType == VIRTGPU_KUMQUAT_HANDLE_TYPE_MEM_DMABUF) { - flagBits = (enum VkExternalMemoryHandleTypeFlagBits)( - uint32_t(flagBits) | uint32_t(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)); + flagBits = (enum VkExternalMemoryHandleTypeFlagBits)(uint32_t(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)); + } else { + flagBits = (enum VkExternalMemoryHandleTypeFlagBits)(uint32_t(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT)); } VkImportMemoryFdInfoKHR importInfo{