VkImageCreateInfo should ignore queeu family indices in some situation
The spec says indices pointer should be ignored when sharingMode is not
VK_SHARING_MODE_CONCURRENT.
We need to explicitly set index count to 0 and index pointer to null,
otherwise encoder will still try to encode it.
Spec:
https://registry.khronos.org/vulkan/specs/1.3/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-00913
Bug: 307378870
Test: dEQP-VK.wsi.android.swapchain.create.exclusive_nonzero_queues
Change-Id: Id3f7eb0a5086acfc5b5508b5ed93974f17b479fd
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 4e8c877..a286f7f 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -4045,6 +4045,11 @@
VkEncoder* enc = (VkEncoder*)context;
VkImageCreateInfo localCreateInfo = vk_make_orphan_copy(*pCreateInfo);
+ if (localCreateInfo.sharingMode != VK_SHARING_MODE_CONCURRENT) {
+ localCreateInfo.queueFamilyIndexCount = 0;
+ localCreateInfo.pQueueFamilyIndices = nullptr;
+ }
+
vk_struct_chain_iterator structChainIter = vk_make_chain_iterator(&localCreateInfo);
VkExternalMemoryImageCreateInfo localExtImgCi;