Parse more ext structs in vkAllocateMemory and vkCreateBuffer
Bug: 303509063
Test: dEQP-VK.binding_model.buffer_device_address.set0.*
Change-Id: I61654c246830257c016dfebd8ce70859b436a698
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 892e649..600cb95 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -5119,6 +5119,23 @@
vk_append_struct(&structChainIter, &localExtBufCi);
}
+
+ VkBufferOpaqueCaptureAddressCreateInfo localCapAddrCi;
+ const VkBufferOpaqueCaptureAddressCreateInfo* pCapAddrCi =
+ vk_find_struct<VkBufferOpaqueCaptureAddressCreateInfo>(pCreateInfo);
+ if (pCapAddrCi) {
+ localCapAddrCi = vk_make_orphan_copy(*pCapAddrCi);
+ vk_append_struct(&structChainIter, &localCapAddrCi);
+ }
+
+ VkBufferDeviceAddressCreateInfoEXT localDevAddrCi;
+ const VkBufferDeviceAddressCreateInfoEXT* pDevAddrCi =
+ vk_find_struct<VkBufferDeviceAddressCreateInfoEXT>(pCreateInfo);
+ if (pDevAddrCi) {
+ localDevAddrCi = vk_make_orphan_copy(*pDevAddrCi);
+ vk_append_struct(&structChainIter, &localDevAddrCi);
+ }
+
#ifdef VK_USE_PLATFORM_FUCHSIA
Optional<zx::vmo> vmo;
bool isSysmemBackedMemory = false;