(3/8) vulkan_enc: Add VkImportBufferGOOGLE

We add a struct VkImportBufferGOOGLE used for host-guest
Vulkan interop.

This struct is similar to VkImportColorBufferGOOGLE but the
handle passed in should be a handle of host "Buffer" instead
of "ColorBuffer".

Change-Id: I1f22e94d2b3c8b81d670b35e181b0e902deecb5d
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index e2d3294..8e81c7f 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -6363,6 +6363,22 @@
     }
 }
 
+void deepcopy_VkImportBufferGOOGLE(
+    Pool* pool,
+    const VkImportBufferGOOGLE* from,
+    VkImportBufferGOOGLE* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 void deepcopy_VkImportPhysicalAddressGOOGLE(
     Pool* pool,
     const VkImportPhysicalAddressGOOGLE* from,
@@ -7041,6 +7057,11 @@
             deepcopy_VkImportColorBufferGOOGLE(pool, reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE:
+        {
+            deepcopy_VkImportBufferGOOGLE(pool, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
+            break;
+        }
         case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE:
         {
             deepcopy_VkImportPhysicalAddressGOOGLE(pool, reinterpret_cast<const VkImportPhysicalAddressGOOGLE*>(structExtension), reinterpret_cast<VkImportPhysicalAddressGOOGLE*>(structExtension_out));