[vulkan] Take autogenerated code for to/from host transform

bug: 111137294
bug: 121420031

+ Take the cleanup pass where we remove VkEventHandler to not have so
much virtual dispatch going on.
+ Implement stubs for the device memory transformations
+ Add postprocess for vkGetPhysicalDeviceMemoryProperties

Change-Id: Iea821ffa3d294f4522f6f44b9c4c8bc4dbe4683e
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index 499f875..ec87be0 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -48,7 +48,6 @@
     VulkanHandleMapping.cpp \
     ResourceTracker.cpp \
     VkEncoder.cpp \
-VkEventHandler.cpp \
 goldfish_vk_extension_structs_guest.cpp \
 goldfish_vk_marshaling_guest.cpp \
 goldfish_vk_deepcopy_guest.cpp \
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index 87d92a0..cb0c71a 100644
--- a/system/vulkan_enc/CMakeLists.txt
+++ b/system/vulkan_enc/CMakeLists.txt
@@ -1,8 +1,8 @@
 # This is an autogenerated file! Do not edit!
 # instead run make from .../device/generic/goldfish-opengl
 # which will re-generate this file.
-android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "3a3e30f6712f849d0d4fdff1b495901bc4eef121d06df6f1a5176d80f0b8fc80")
-set(vulkan_enc_src Resources.cpp Validation.cpp VulkanStream.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp VkEventHandler.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform.cpp)
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "507ec7abf2b89e48acb38033eb9ecf2d2ca9826bfc37aa4d28af8fbecb5d6362")
+set(vulkan_enc_src Resources.cpp Validation.cpp VulkanStream.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform.cpp)
 android_add_shared_library(vulkan_enc)
 target_include_directories(vulkan_enc PRIVATE ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include/vulkan)
 target_compile_definitions(vulkan_enc PRIVATE "-DWITH_GLES2" "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGOLDFISH_VULKAN" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_GOOGLE_address_space" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES")
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 7d5bd67..f76c644 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -263,7 +263,39 @@
         return mFeatureInfo->hasDirectMem;
     }
 
-    void deviceMemoryTransform(
+    void deviceMemoryTransform_tohost(
+        VkDeviceMemory* memory, uint32_t memoryCount,
+        VkDeviceSize* offset, uint32_t offsetCount,
+        VkDeviceSize* size, uint32_t sizeCount,
+        uint32_t* typeIndex, uint32_t typeIndexCount,
+        uint32_t* typeBits, uint32_t typeBitsCount) {
+        
+        if (memoryCount != offsetCount ||
+            offsetCount != sizeCount ||
+            sizeCount != memoryCount) {
+            ALOGE("FATAL: Mismatched counts for device memory info");
+            abort();
+        }
+
+        for (uint32_t i = 0; i < memoryCount; ++i) {
+            // TODO
+            (void)memory;
+            (void)offset;
+            (void)size;
+        }
+
+        for (uint32_t i = 0; i < typeIndexCount; ++i) {
+            // TODO
+            (void)typeIndex;
+        }
+
+        for (uint32_t i = 0; i < typeBitsCount; ++i) {
+            // TODO
+            (void)typeBits;
+        }
+    }
+
+    void deviceMemoryTransform_fromhost(
         VkDeviceMemory* memory, uint32_t memoryCount,
         VkDeviceSize* offset, uint32_t offsetCount,
         VkDeviceSize* size, uint32_t sizeCount,
@@ -323,6 +355,11 @@
         // no-op
     }
 
+    void on_vkGetPhysicalDeviceMemoryProperties(
+        void*,
+        VkPhysicalDevice,
+        VkPhysicalDeviceMemoryProperties*) { }
+
     VkResult on_vkCreateDevice(
         void* context,
         VkResult input_result,
@@ -631,13 +668,27 @@
     return mImpl->usingDirectMapping();
 }
 
-void ResourceTracker::deviceMemoryTransform(
+void ResourceTracker::deviceMemoryTransform_tohost(
     VkDeviceMemory* memory, uint32_t memoryCount,
     VkDeviceSize* offset, uint32_t offsetCount,
     VkDeviceSize* size, uint32_t sizeCount,
     uint32_t* typeIndex, uint32_t typeIndexCount,
     uint32_t* typeBits, uint32_t typeBitsCount) {
-    mImpl->deviceMemoryTransform(
+    mImpl->deviceMemoryTransform_tohost(
+        memory, memoryCount,
+        offset, offsetCount,
+        size, sizeCount,
+        typeIndex, typeIndexCount,
+        typeBits, typeBitsCount);
+}
+
+void ResourceTracker::deviceMemoryTransform_fromhost(
+    VkDeviceMemory* memory, uint32_t memoryCount,
+    VkDeviceSize* offset, uint32_t offsetCount,
+    VkDeviceSize* size, uint32_t sizeCount,
+    uint32_t* typeIndex, uint32_t typeIndexCount,
+    uint32_t* typeBits, uint32_t typeBitsCount) {
+    mImpl->deviceMemoryTransform_fromhost(
         memory, memoryCount,
         offset, offsetCount,
         size, sizeCount,
@@ -670,6 +721,14 @@
     mImpl->on_vkGetPhysicalDeviceProperties2(context, physicalDevice, pProperties);
 }
 
+void ResourceTracker::on_vkGetPhysicalDeviceMemoryProperties(
+    void* context,
+    VkPhysicalDevice physicalDevice,
+    VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
+    mImpl->on_vkGetPhysicalDeviceMemoryProperties(
+        context, physicalDevice, pMemoryProperties);
+}
+
 VkResult ResourceTracker::on_vkCreateDevice(
     void* context,
     VkResult input_result,
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index 104cbb8..d4299ea 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -18,14 +18,13 @@
 
 #include "VulkanHandleMapping.h"
 #include "VulkanHandles.h"
-#include "VkEventHandler.h"
 #include <memory>
 
 struct EmulatorFeatureInfo;
 
 namespace goldfish_vk {
 
-class ResourceTracker : public VkEventHandler {
+class ResourceTracker {
 public:
     ResourceTracker();
     virtual ~ResourceTracker();
@@ -44,18 +43,22 @@
     VkResult on_vkEnumerateInstanceVersion(
         void* context,
         VkResult input_result,
-        uint32_t* apiVersion) override;
+        uint32_t* apiVersion);
     VkResult on_vkEnumerateDeviceExtensionProperties(
         void* context,
         VkResult input_result,
         VkPhysicalDevice physicalDevice,
         const char* pLayerName,
         uint32_t* pPropertyCount,
-        VkExtensionProperties* pProperties) override;
+        VkExtensionProperties* pProperties);
     void on_vkGetPhysicalDeviceProperties2(
         void* context,
         VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceProperties2* pProperties) override;
+        VkPhysicalDeviceProperties2* pProperties);
+    void on_vkGetPhysicalDeviceMemoryProperties(
+        void* context,
+        VkPhysicalDevice physicalDevice,
+        VkPhysicalDeviceMemoryProperties* pMemoryProperties);
 
     VkResult on_vkCreateDevice(
         void* context,
@@ -63,7 +66,7 @@
         VkPhysicalDevice physicalDevice,
         const VkDeviceCreateInfo* pCreateInfo,
         const VkAllocationCallbacks* pAllocator,
-        VkDevice* pDevice) override;
+        VkDevice* pDevice);
 
     VkResult on_vkAllocateMemory(
         void* context,
@@ -71,7 +74,7 @@
         VkDevice device,
         const VkMemoryAllocateInfo* pAllocateInfo,
         const VkAllocationCallbacks* pAllocator,
-        VkDeviceMemory* pMemory) override;
+        VkDeviceMemory* pMemory);
 
     VkResult on_vkMapMemory(
         void* context,
@@ -86,7 +89,7 @@
     void on_vkUnmapMemory(
         void* context,
         VkDevice device,
-        VkDeviceMemory memory) override;
+        VkDeviceMemory memory);
 
     void unwrap_VkNativeBufferANDROID(
         const VkImageCreateInfo* pCreateInfo,
@@ -114,7 +117,13 @@
     bool isValidMemoryRange(const VkMappedMemoryRange& range) const;
     void setupFeatures(const EmulatorFeatureInfo* features);
     bool usingDirectMapping() const;
-    void deviceMemoryTransform(
+    void deviceMemoryTransform_tohost(
+        VkDeviceMemory* memory, uint32_t memoryCount,
+        VkDeviceSize* offset, uint32_t offsetCount,
+        VkDeviceSize* size, uint32_t sizeCount,
+        uint32_t* typeIndex, uint32_t typeIndexCount,
+        uint32_t* typeBits, uint32_t typeBitsCount);
+    void deviceMemoryTransform_fromhost(
         VkDeviceMemory* memory, uint32_t memoryCount,
         VkDeviceSize* offset, uint32_t offsetCount,
         VkDeviceSize* size, uint32_t sizeCount,
diff --git a/system/vulkan_enc/Validation.h b/system/vulkan_enc/Validation.h
index 30af8b4..f006633 100644
--- a/system/vulkan_enc/Validation.h
+++ b/system/vulkan_enc/Validation.h
@@ -15,24 +15,22 @@
 
 #include <vulkan/vulkan.h>
 
-#include "VkEventHandler.h"
-
 namespace goldfish_vk {
 
-class Validation : public VkEventHandler {
+class Validation {
 public:
     VkResult on_vkFlushMappedMemoryRanges(
         void* context,
         VkResult input_result,
         VkDevice device,
         uint32_t memoryRangeCount,
-        const VkMappedMemoryRange* pMemoryRanges) override;
+        const VkMappedMemoryRange* pMemoryRanges);
     VkResult on_vkInvalidateMappedMemoryRanges(
         void* context,
         VkResult input_result,
         VkDevice device,
         uint32_t memoryRangeCount,
-        const VkMappedMemoryRange* pMemoryRanges) override;
+        const VkMappedMemoryRange* pMemoryRanges);
 };
 
-} // namespace goldfish_vk
\ No newline at end of file
+} // namespace goldfish_vk
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 736924f..6724ca5 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -106,11 +106,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkInstanceCreateInfo(mImpl->resources(), (VkInstanceCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkInstanceCreateInfo(mImpl->resources(), (VkInstanceCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -178,7 +178,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -345,6 +345,10 @@
     stream->write((uint64_t*)&cgen_var_21, 1 * 8);
     marshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
     unmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
+    if (pFeatures)
+    {
+        transform_fromhost_VkPhysicalDeviceFeatures(mImpl->resources(), (VkPhysicalDeviceFeatures*)(pFeatures));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceFormatProperties(
@@ -380,6 +384,10 @@
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
     unmarshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
+    if (pFormatProperties)
+    {
+        transform_fromhost_VkFormatProperties(mImpl->resources(), (VkFormatProperties*)(pFormatProperties));
+    }
 }
 
 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties(
@@ -435,6 +443,10 @@
     stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
     marshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
     unmarshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
+    if (pImageFormatProperties)
+    {
+        transform_fromhost_VkImageFormatProperties(mImpl->resources(), (VkImageFormatProperties*)(pImageFormatProperties));
+    }
     VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -471,6 +483,10 @@
     stream->write((uint64_t*)&cgen_var_27, 1 * 8);
     marshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
     unmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties(
@@ -558,6 +574,13 @@
             unmarshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
         }
     }
+    if (pQueueFamilyProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        {
+            transform_fromhost_VkQueueFamilyProperties(mImpl->resources(), (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
+        }
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceMemoryProperties(
@@ -588,6 +611,11 @@
     stream->write((uint64_t*)&cgen_var_37, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
     unmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
+    if (pMemoryProperties)
+    {
+        transform_fromhost_VkPhysicalDeviceMemoryProperties(mImpl->resources(), (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
+    }
+    mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties(this, physicalDevice, pMemoryProperties);
 }
 
 PFN_vkVoidFunction VkEncoder::vkGetInstanceProcAddr(
@@ -702,11 +730,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDeviceCreateInfo(mImpl->resources(), (VkDeviceCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDeviceCreateInfo(mImpl->resources(), (VkDeviceCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -781,7 +809,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -899,6 +927,13 @@
             unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i));
+        }
+    }
     VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateInstanceExtensionProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -994,6 +1029,13 @@
             unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
+        }
+    }
     VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateInstanceLayerProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1087,6 +1129,13 @@
             unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
+        }
+    }
     VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateDeviceLayerProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1176,7 +1225,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
         {
-            transform_VkSubmitInfo(mImpl->resources(), (VkSubmitInfo*)(local_pSubmits + i));
+            transform_tohost_VkSubmitInfo(mImpl->resources(), (VkSubmitInfo*)(local_pSubmits + i));
         }
     }
     countingStream->rewind();
@@ -1311,11 +1360,11 @@
     local_pAllocator = nullptr;
     if (local_pAllocateInfo)
     {
-        transform_VkMemoryAllocateInfo(mImpl->resources(), (VkMemoryAllocateInfo*)(local_pAllocateInfo));
+        transform_tohost_VkMemoryAllocateInfo(mImpl->resources(), (VkMemoryAllocateInfo*)(local_pAllocateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -1391,7 +1440,7 @@
         deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
     }
     local_pAllocator = nullptr;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_93;
@@ -1478,7 +1527,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
         {
-            transform_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
+            transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
         }
     }
     countingStream->rewind();
@@ -1580,7 +1629,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
         {
-            transform_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
+            transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
         }
     }
     countingStream->rewind();
@@ -1648,7 +1697,7 @@
     VkDeviceMemory local_memory;
     local_device = device;
     local_memory = memory;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_103;
@@ -1693,7 +1742,7 @@
     local_buffer = buffer;
     local_memory = memory;
     local_memoryOffset = memoryOffset;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, &local_memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, &local_memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_107;
@@ -1749,7 +1798,7 @@
     local_image = image;
     local_memory = memory;
     local_memoryOffset = memoryOffset;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, &local_memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, &local_memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_113;
@@ -1823,6 +1872,10 @@
     stream->write((uint64_t*)&cgen_var_122, 1 * 8);
     marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetImageMemoryRequirements(
@@ -1862,6 +1915,10 @@
     stream->write((uint64_t*)&cgen_var_126, 1 * 8);
     marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetImageSparseMemoryRequirements(
@@ -1958,6 +2015,13 @@
             unmarshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
         }
     }
+    if (pSparseMemoryRequirements)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageMemoryRequirements(mImpl->resources(), (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
+        }
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties(
@@ -2070,6 +2134,13 @@
             unmarshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageFormatProperties(mImpl->resources(), (VkSparseImageFormatProperties*)(pProperties + i));
+        }
+    }
 }
 
 VkResult VkEncoder::vkQueueBindSparse(
@@ -2103,7 +2174,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
-            transform_VkBindSparseInfo(mImpl->resources(), (VkBindSparseInfo*)(local_pBindInfo + i));
+            transform_tohost_VkBindSparseInfo(mImpl->resources(), (VkBindSparseInfo*)(local_pBindInfo + i));
         }
     }
     countingStream->rewind();
@@ -2174,11 +2245,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkFenceCreateInfo(mImpl->resources(), (VkFenceCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkFenceCreateInfo(mImpl->resources(), (VkFenceCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2255,7 +2326,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2491,11 +2562,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkSemaphoreCreateInfo(mImpl->resources(), (VkSemaphoreCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkSemaphoreCreateInfo(mImpl->resources(), (VkSemaphoreCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2572,7 +2643,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2641,11 +2712,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkEventCreateInfo(mImpl->resources(), (VkEventCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkEventCreateInfo(mImpl->resources(), (VkEventCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2722,7 +2793,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2914,11 +2985,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkQueryPoolCreateInfo(mImpl->resources(), (VkQueryPoolCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkQueryPoolCreateInfo(mImpl->resources(), (VkQueryPoolCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -2995,7 +3066,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3136,11 +3207,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3217,7 +3288,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3286,11 +3357,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkBufferViewCreateInfo(mImpl->resources(), (VkBufferViewCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkBufferViewCreateInfo(mImpl->resources(), (VkBufferViewCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3367,7 +3438,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3437,11 +3508,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3518,7 +3589,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3581,7 +3652,7 @@
     }
     if (local_pSubresource)
     {
-        transform_VkImageSubresource(mImpl->resources(), (VkImageSubresource*)(local_pSubresource));
+        transform_tohost_VkImageSubresource(mImpl->resources(), (VkImageSubresource*)(local_pSubresource));
     }
     countingStream->rewind();
     {
@@ -3608,6 +3679,10 @@
     marshal_VkImageSubresource(stream, (VkImageSubresource*)(local_pSubresource));
     marshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
     unmarshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
+    if (pLayout)
+    {
+        transform_fromhost_VkSubresourceLayout(mImpl->resources(), (VkSubresourceLayout*)(pLayout));
+    }
 }
 
 VkResult VkEncoder::vkCreateImageView(
@@ -3640,11 +3715,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkImageViewCreateInfo(mImpl->resources(), (VkImageViewCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkImageViewCreateInfo(mImpl->resources(), (VkImageViewCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3721,7 +3796,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3790,11 +3865,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkShaderModuleCreateInfo(mImpl->resources(), (VkShaderModuleCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkShaderModuleCreateInfo(mImpl->resources(), (VkShaderModuleCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3871,7 +3946,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -3940,11 +4015,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkPipelineCacheCreateInfo(mImpl->resources(), (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkPipelineCacheCreateInfo(mImpl->resources(), (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4021,7 +4096,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4263,12 +4338,12 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
         {
-            transform_VkGraphicsPipelineCreateInfo(mImpl->resources(), (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
+            transform_tohost_VkGraphicsPipelineCreateInfo(mImpl->resources(), (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
         }
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4388,12 +4463,12 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
         {
-            transform_VkComputePipelineCreateInfo(mImpl->resources(), (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
+            transform_tohost_VkComputePipelineCreateInfo(mImpl->resources(), (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
         }
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4496,7 +4571,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4565,11 +4640,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkPipelineLayoutCreateInfo(mImpl->resources(), (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkPipelineLayoutCreateInfo(mImpl->resources(), (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4646,7 +4721,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4715,11 +4790,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkSamplerCreateInfo(mImpl->resources(), (VkSamplerCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkSamplerCreateInfo(mImpl->resources(), (VkSamplerCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4796,7 +4871,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4865,11 +4940,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -4946,7 +5021,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5015,11 +5090,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorPoolCreateInfo(mImpl->resources(), (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorPoolCreateInfo(mImpl->resources(), (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5096,7 +5171,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5202,7 +5277,7 @@
     }
     if (local_pAllocateInfo)
     {
-        transform_VkDescriptorSetAllocateInfo(mImpl->resources(), (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
+        transform_tohost_VkDescriptorSetAllocateInfo(mImpl->resources(), (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
     }
     countingStream->rewind();
     {
@@ -5378,14 +5453,14 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
         {
-            transform_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
+            transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
         }
     }
     if (local_pDescriptorCopies)
     {
         for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i)
         {
-            transform_VkCopyDescriptorSet(mImpl->resources(), (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
+            transform_tohost_VkCopyDescriptorSet(mImpl->resources(), (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
         }
     }
     countingStream->rewind();
@@ -5454,11 +5529,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkFramebufferCreateInfo(mImpl->resources(), (VkFramebufferCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkFramebufferCreateInfo(mImpl->resources(), (VkFramebufferCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5535,7 +5610,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5604,11 +5679,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkRenderPassCreateInfo(mImpl->resources(), (VkRenderPassCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkRenderPassCreateInfo(mImpl->resources(), (VkRenderPassCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5685,7 +5760,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5761,6 +5836,10 @@
     stream->write((uint64_t*)&cgen_var_456, 1 * 8);
     marshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
     unmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
+    if (pGranularity)
+    {
+        transform_fromhost_VkExtent2D(mImpl->resources(), (VkExtent2D*)(pGranularity));
+    }
 }
 
 VkResult VkEncoder::vkCreateCommandPool(
@@ -5793,11 +5872,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkCommandPoolCreateInfo(mImpl->resources(), (VkCommandPoolCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkCommandPoolCreateInfo(mImpl->resources(), (VkCommandPoolCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5874,7 +5953,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -5980,7 +6059,7 @@
     }
     if (local_pAllocateInfo)
     {
-        transform_VkCommandBufferAllocateInfo(mImpl->resources(), (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
+        transform_tohost_VkCommandBufferAllocateInfo(mImpl->resources(), (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
     }
     countingStream->rewind();
     {
@@ -6128,7 +6207,7 @@
     }
     if (local_pBeginInfo)
     {
-        transform_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo));
+        transform_tohost_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo));
     }
     countingStream->rewind();
     {
@@ -6294,7 +6373,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
         {
-            transform_VkViewport(mImpl->resources(), (VkViewport*)(local_pViewports + i));
+            transform_tohost_VkViewport(mImpl->resources(), (VkViewport*)(local_pViewports + i));
         }
     }
     countingStream->rewind();
@@ -6356,7 +6435,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
         {
-            transform_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pScissors + i));
+            transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pScissors + i));
         }
     }
     countingStream->rewind();
@@ -7142,7 +7221,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkBufferCopy(mImpl->resources(), (VkBufferCopy*)(local_pRegions + i));
+            transform_tohost_VkBufferCopy(mImpl->resources(), (VkBufferCopy*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -7223,7 +7302,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkImageCopy(mImpl->resources(), (VkImageCopy*)(local_pRegions + i));
+            transform_tohost_VkImageCopy(mImpl->resources(), (VkImageCopy*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -7311,7 +7390,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkImageBlit(mImpl->resources(), (VkImageBlit*)(local_pRegions + i));
+            transform_tohost_VkImageBlit(mImpl->resources(), (VkImageBlit*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -7395,7 +7474,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
+            transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -7475,7 +7554,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
+            transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -7662,13 +7741,13 @@
     }
     if (local_pColor)
     {
-        transform_VkClearColorValue(mImpl->resources(), (VkClearColorValue*)(local_pColor));
+        transform_tohost_VkClearColorValue(mImpl->resources(), (VkClearColorValue*)(local_pColor));
     }
     if (local_pRanges)
     {
         for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
         {
-            transform_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
+            transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
         }
     }
     countingStream->rewind();
@@ -7747,13 +7826,13 @@
     }
     if (local_pDepthStencil)
     {
-        transform_VkClearDepthStencilValue(mImpl->resources(), (VkClearDepthStencilValue*)(local_pDepthStencil));
+        transform_tohost_VkClearDepthStencilValue(mImpl->resources(), (VkClearDepthStencilValue*)(local_pDepthStencil));
     }
     if (local_pRanges)
     {
         for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
         {
-            transform_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
+            transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
         }
     }
     countingStream->rewind();
@@ -7834,14 +7913,14 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
         {
-            transform_VkClearAttachment(mImpl->resources(), (VkClearAttachment*)(local_pAttachments + i));
+            transform_tohost_VkClearAttachment(mImpl->resources(), (VkClearAttachment*)(local_pAttachments + i));
         }
     }
     if (local_pRects)
     {
         for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i)
         {
-            transform_VkClearRect(mImpl->resources(), (VkClearRect*)(local_pRects + i));
+            transform_tohost_VkClearRect(mImpl->resources(), (VkClearRect*)(local_pRects + i));
         }
     }
     countingStream->rewind();
@@ -7920,7 +7999,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
         {
-            transform_VkImageResolve(mImpl->resources(), (VkImageResolve*)(local_pRegions + i));
+            transform_tohost_VkImageResolve(mImpl->resources(), (VkImageResolve*)(local_pRegions + i));
         }
     }
     countingStream->rewind();
@@ -8117,21 +8196,21 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
         {
-            transform_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
+            transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
         }
     }
     if (local_pBufferMemoryBarriers)
     {
         for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
         {
-            transform_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
+            transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
         }
     }
     if (local_pImageMemoryBarriers)
     {
         for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
         {
-            transform_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
+            transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
         }
     }
     countingStream->rewind();
@@ -8265,21 +8344,21 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
         {
-            transform_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
+            transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
         }
     }
     if (local_pBufferMemoryBarriers)
     {
         for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
         {
-            transform_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
+            transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
         }
     }
     if (local_pImageMemoryBarriers)
     {
         for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
         {
-            transform_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
+            transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
         }
     }
     countingStream->rewind();
@@ -8660,7 +8739,7 @@
     local_contents = contents;
     if (local_pRenderPassBegin)
     {
-        transform_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
+        transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
     }
     countingStream->rewind();
     {
@@ -8829,7 +8908,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
-            transform_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
+            transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
         }
     }
     countingStream->rewind();
@@ -8892,7 +8971,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
-            transform_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
+            transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
         }
     }
     countingStream->rewind();
@@ -9144,6 +9223,13 @@
             unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    if (pPhysicalDeviceGroupProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        {
+            transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+        }
+    }
     VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
     stream->read(&vkEnumeratePhysicalDeviceGroups_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -9173,7 +9259,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -9194,6 +9280,10 @@
     marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetBufferMemoryRequirements2(
@@ -9217,7 +9307,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -9238,6 +9328,10 @@
     marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetImageSparseMemoryRequirements2(
@@ -9262,7 +9356,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -9339,6 +9433,13 @@
             unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    if (pSparseMemoryRequirements)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+        }
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceFeatures2(
@@ -9369,6 +9470,10 @@
     stream->write((uint64_t*)&cgen_var_682, 1 * 8);
     marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
+    if (pFeatures)
+    {
+        transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceProperties2(
@@ -9411,6 +9516,10 @@
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
     unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
+    if (pFormatProperties)
+    {
+        transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
+    }
 }
 
 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2(
@@ -9434,7 +9543,7 @@
     }
     if (local_pImageFormatInfo)
     {
-        transform_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
+        transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     }
     countingStream->rewind();
     {
@@ -9455,6 +9564,10 @@
     marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
     unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
+    if (pImageFormatProperties)
+    {
+        transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
+    }
     VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties2_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -9548,6 +9661,13 @@
             unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    if (pQueueFamilyProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        {
+            transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+        }
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceMemoryProperties2(
@@ -9578,6 +9698,10 @@
     stream->write((uint64_t*)&cgen_var_696, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    if (pMemoryProperties)
+    {
+        transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2(
@@ -9602,7 +9726,7 @@
     }
     if (local_pFormatInfo)
     {
-        transform_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
+        transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
     }
     countingStream->rewind();
     {
@@ -9679,6 +9803,13 @@
             unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
+        }
+    }
 }
 
 void VkEncoder::vkTrimCommandPool(
@@ -9742,7 +9873,7 @@
     }
     if (local_pQueueInfo)
     {
-        transform_VkDeviceQueueInfo2(mImpl->resources(), (VkDeviceQueueInfo2*)(local_pQueueInfo));
+        transform_tohost_VkDeviceQueueInfo2(mImpl->resources(), (VkDeviceQueueInfo2*)(local_pQueueInfo));
     }
     countingStream->rewind();
     {
@@ -9803,11 +9934,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -9884,7 +10015,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -9953,11 +10084,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -10034,7 +10165,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -10159,7 +10290,7 @@
     }
     if (local_pExternalBufferInfo)
     {
-        transform_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
+        transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     }
     countingStream->rewind();
     {
@@ -10180,6 +10311,10 @@
     marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
     unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
+    if (pExternalBufferProperties)
+    {
+        transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceExternalFenceProperties(
@@ -10203,7 +10338,7 @@
     }
     if (local_pExternalFenceInfo)
     {
-        transform_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
+        transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     }
     countingStream->rewind();
     {
@@ -10224,6 +10359,10 @@
     marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
     unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
+    if (pExternalFenceProperties)
+    {
+        transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceExternalSemaphoreProperties(
@@ -10247,7 +10386,7 @@
     }
     if (local_pExternalSemaphoreInfo)
     {
-        transform_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
+        transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     }
     countingStream->rewind();
     {
@@ -10268,6 +10407,10 @@
     marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    if (pExternalSemaphoreProperties)
+    {
+        transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    }
 }
 
 void VkEncoder::vkGetDescriptorSetLayoutSupport(
@@ -10291,7 +10434,7 @@
     }
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     }
     countingStream->rewind();
     {
@@ -10312,6 +10455,10 @@
     marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
     unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
+    if (pSupport)
+    {
+        transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
+    }
 }
 
 #endif
@@ -10340,7 +10487,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -10466,6 +10613,10 @@
     stream->write((uint64_t*)&cgen_var_769, 1 * 8);
     marshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
     unmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
+    if (pSurfaceCapabilities)
+    {
+        transform_fromhost_VkSurfaceCapabilitiesKHR(mImpl->resources(), (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
+    }
     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -10568,6 +10719,13 @@
             unmarshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
         }
     }
+    if (pSurfaceFormats)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        {
+            transform_fromhost_VkSurfaceFormatKHR(mImpl->resources(), (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -10701,11 +10859,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -10782,7 +10940,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -11022,7 +11180,7 @@
     }
     if (local_pPresentInfo)
     {
-        transform_VkPresentInfoKHR(mImpl->resources(), (VkPresentInfoKHR*)(local_pPresentInfo));
+        transform_tohost_VkPresentInfoKHR(mImpl->resources(), (VkPresentInfoKHR*)(local_pPresentInfo));
     }
     countingStream->rewind();
     {
@@ -11076,6 +11234,10 @@
     stream->write((uint64_t*)&cgen_var_827, 1 * 8);
     marshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
     unmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
+    if (pDeviceGroupPresentCapabilities)
+    {
+        transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(mImpl->resources(), (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
+    }
     VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11245,6 +11407,13 @@
             unmarshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
         }
     }
+    if (pRects)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+        {
+            transform_fromhost_VkRect2D(mImpl->resources(), (VkRect2D*)(pRects + i));
+        }
+    }
     VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11274,7 +11443,7 @@
     }
     if (local_pAcquireInfo)
     {
-        transform_VkAcquireNextImageInfoKHR(mImpl->resources(), (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
+        transform_tohost_VkAcquireNextImageInfoKHR(mImpl->resources(), (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
     }
     countingStream->rewind();
     {
@@ -11390,6 +11559,13 @@
             unmarshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayPropertiesKHR(mImpl->resources(), (VkDisplayPropertiesKHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11483,6 +11659,13 @@
             unmarshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayPlanePropertiesKHR(mImpl->resources(), (VkDisplayPlanePropertiesKHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11694,6 +11877,13 @@
             unmarshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayModePropertiesKHR(mImpl->resources(), (VkDisplayModePropertiesKHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayModePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11735,11 +11925,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDisplayModeCreateInfoKHR(mImpl->resources(), (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkDisplayModeCreateInfoKHR(mImpl->resources(), (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -11840,6 +12030,10 @@
     stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
     marshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
     unmarshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
+    if (pCapabilities)
+    {
+        transform_fromhost_VkDisplayPlaneCapabilitiesKHR(mImpl->resources(), (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
+    }
     VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayPlaneCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11878,11 +12072,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDisplaySurfaceCreateInfoKHR(mImpl->resources(), (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkDisplaySurfaceCreateInfoKHR(mImpl->resources(), (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -11973,12 +12167,12 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
         {
-            transform_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
+            transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
         }
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12081,11 +12275,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkXlibSurfaceCreateInfoKHR(mImpl->resources(), (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkXlibSurfaceCreateInfoKHR(mImpl->resources(), (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12214,11 +12408,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkXcbSurfaceCreateInfoKHR(mImpl->resources(), (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkXcbSurfaceCreateInfoKHR(mImpl->resources(), (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12347,11 +12541,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkWaylandSurfaceCreateInfoKHR(mImpl->resources(), (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkWaylandSurfaceCreateInfoKHR(mImpl->resources(), (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12475,11 +12669,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkMirSurfaceCreateInfoKHR(mImpl->resources(), (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkMirSurfaceCreateInfoKHR(mImpl->resources(), (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12603,11 +12797,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkAndroidSurfaceCreateInfoKHR(mImpl->resources(), (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkAndroidSurfaceCreateInfoKHR(mImpl->resources(), (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12690,11 +12884,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkWin32SurfaceCreateInfoKHR(mImpl->resources(), (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
+        transform_tohost_VkWin32SurfaceCreateInfoKHR(mImpl->resources(), (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -12816,6 +13010,10 @@
     stream->write((uint64_t*)&cgen_var_964, 1 * 8);
     marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
+    if (pFeatures)
+    {
+        transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceProperties2KHR(
@@ -12846,6 +13044,10 @@
     stream->write((uint64_t*)&cgen_var_966, 1 * 8);
     marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
     unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceFormatProperties2KHR(
@@ -12881,6 +13083,10 @@
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
     unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
+    if (pFormatProperties)
+    {
+        transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
+    }
 }
 
 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2KHR(
@@ -12904,7 +13110,7 @@
     }
     if (local_pImageFormatInfo)
     {
-        transform_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
+        transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     }
     countingStream->rewind();
     {
@@ -12925,6 +13131,10 @@
     marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
     unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
+    if (pImageFormatProperties)
+    {
+        transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
+    }
     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13018,6 +13228,13 @@
             unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    if (pQueueFamilyProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        {
+            transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+        }
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceMemoryProperties2KHR(
@@ -13048,6 +13265,10 @@
     stream->write((uint64_t*)&cgen_var_980, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    if (pMemoryProperties)
+    {
+        transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    }
 }
 
 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
@@ -13072,7 +13293,7 @@
     }
     if (local_pFormatInfo)
     {
-        transform_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
+        transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
     }
     countingStream->rewind();
     {
@@ -13149,6 +13370,13 @@
             unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
+        }
+    }
 }
 
 #endif
@@ -13416,6 +13644,13 @@
             unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    if (pPhysicalDeviceGroupProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        {
+            transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+        }
+    }
     VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13447,7 +13682,7 @@
     }
     if (local_pExternalBufferInfo)
     {
-        transform_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
+        transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     }
     countingStream->rewind();
     {
@@ -13468,6 +13703,10 @@
     marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
     unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
+    if (pExternalBufferProperties)
+    {
+        transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
+    }
 }
 
 #endif
@@ -13495,7 +13734,7 @@
     }
     if (local_pGetWin32HandleInfo)
     {
-        transform_VkMemoryGetWin32HandleInfoKHR(mImpl->resources(), (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
+        transform_tohost_VkMemoryGetWin32HandleInfoKHR(mImpl->resources(), (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     }
     countingStream->rewind();
     {
@@ -13562,6 +13801,10 @@
     stream->write((HANDLE*)&local_handle, sizeof(HANDLE));
     marshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
     unmarshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
+    if (pMemoryWin32HandleProperties)
+    {
+        transform_fromhost_VkMemoryWin32HandlePropertiesKHR(mImpl->resources(), (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
+    }
     VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryWin32HandlePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13593,7 +13836,7 @@
     }
     if (local_pGetFdInfo)
     {
-        transform_VkMemoryGetFdInfoKHR(mImpl->resources(), (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
+        transform_tohost_VkMemoryGetFdInfoKHR(mImpl->resources(), (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
     }
     countingStream->rewind();
     {
@@ -13660,6 +13903,10 @@
     stream->write((int*)&local_fd, sizeof(int));
     marshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
     unmarshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
+    if (pMemoryFdProperties)
+    {
+        transform_fromhost_VkMemoryFdPropertiesKHR(mImpl->resources(), (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
+    }
     VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryFdPropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13693,7 +13940,7 @@
     }
     if (local_pExternalSemaphoreInfo)
     {
-        transform_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
+        transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     }
     countingStream->rewind();
     {
@@ -13714,6 +13961,10 @@
     marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    if (pExternalSemaphoreProperties)
+    {
+        transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    }
 }
 
 #endif
@@ -13740,7 +13991,7 @@
     }
     if (local_pImportSemaphoreWin32HandleInfo)
     {
-        transform_VkImportSemaphoreWin32HandleInfoKHR(mImpl->resources(), (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
+        transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(mImpl->resources(), (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
     }
     countingStream->rewind();
     {
@@ -13787,7 +14038,7 @@
     }
     if (local_pGetWin32HandleInfo)
     {
-        transform_VkSemaphoreGetWin32HandleInfoKHR(mImpl->resources(), (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
+        transform_tohost_VkSemaphoreGetWin32HandleInfoKHR(mImpl->resources(), (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     }
     countingStream->rewind();
     {
@@ -13838,7 +14089,7 @@
     }
     if (local_pImportSemaphoreFdInfo)
     {
-        transform_VkImportSemaphoreFdInfoKHR(mImpl->resources(), (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
+        transform_tohost_VkImportSemaphoreFdInfoKHR(mImpl->resources(), (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
     }
     countingStream->rewind();
     {
@@ -13885,7 +14136,7 @@
     }
     if (local_pGetFdInfo)
     {
-        transform_VkSemaphoreGetFdInfoKHR(mImpl->resources(), (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
+        transform_tohost_VkSemaphoreGetFdInfoKHR(mImpl->resources(), (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
     }
     countingStream->rewind();
     {
@@ -13953,7 +14204,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
         {
-            transform_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
+            transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
         }
     }
     countingStream->rewind();
@@ -14098,11 +14349,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -14177,7 +14428,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -14312,11 +14563,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkRenderPassCreateInfo2KHR(mImpl->resources(), (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
+        transform_tohost_VkRenderPassCreateInfo2KHR(mImpl->resources(), (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -14395,11 +14646,11 @@
     }
     if (local_pRenderPassBegin)
     {
-        transform_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
+        transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
     }
     if (local_pSubpassBeginInfo)
     {
-        transform_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
     }
     countingStream->rewind();
     {
@@ -14449,11 +14700,11 @@
     }
     if (local_pSubpassBeginInfo)
     {
-        transform_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
     }
     if (local_pSubpassEndInfo)
     {
-        transform_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
     }
     countingStream->rewind();
     {
@@ -14495,7 +14746,7 @@
     }
     if (local_pSubpassEndInfo)
     {
-        transform_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
     }
     countingStream->rewind();
     {
@@ -14581,7 +14832,7 @@
     }
     if (local_pExternalFenceInfo)
     {
-        transform_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
+        transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     }
     countingStream->rewind();
     {
@@ -14602,6 +14853,10 @@
     marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
     unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
+    if (pExternalFenceProperties)
+    {
+        transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
+    }
 }
 
 #endif
@@ -14628,7 +14883,7 @@
     }
     if (local_pImportFenceWin32HandleInfo)
     {
-        transform_VkImportFenceWin32HandleInfoKHR(mImpl->resources(), (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
+        transform_tohost_VkImportFenceWin32HandleInfoKHR(mImpl->resources(), (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
     }
     countingStream->rewind();
     {
@@ -14675,7 +14930,7 @@
     }
     if (local_pGetWin32HandleInfo)
     {
-        transform_VkFenceGetWin32HandleInfoKHR(mImpl->resources(), (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
+        transform_tohost_VkFenceGetWin32HandleInfoKHR(mImpl->resources(), (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     }
     countingStream->rewind();
     {
@@ -14726,7 +14981,7 @@
     }
     if (local_pImportFenceFdInfo)
     {
-        transform_VkImportFenceFdInfoKHR(mImpl->resources(), (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
+        transform_tohost_VkImportFenceFdInfoKHR(mImpl->resources(), (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
     }
     countingStream->rewind();
     {
@@ -14773,7 +15028,7 @@
     }
     if (local_pGetFdInfo)
     {
-        transform_VkFenceGetFdInfoKHR(mImpl->resources(), (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
+        transform_tohost_VkFenceGetFdInfoKHR(mImpl->resources(), (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
     }
     countingStream->rewind();
     {
@@ -14827,7 +15082,7 @@
     }
     if (local_pSurfaceInfo)
     {
-        transform_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+        transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
     }
     countingStream->rewind();
     {
@@ -14848,6 +15103,10 @@
     marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
     marshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
     unmarshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
+    if (pSurfaceCapabilities)
+    {
+        transform_fromhost_VkSurfaceCapabilities2KHR(mImpl->resources(), (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
+    }
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14878,7 +15137,7 @@
     }
     if (local_pSurfaceInfo)
     {
-        transform_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+        transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
     }
     countingStream->rewind();
     {
@@ -14955,6 +15214,13 @@
             unmarshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
         }
     }
+    if (pSurfaceFormats)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        {
+            transform_fromhost_VkSurfaceFormat2KHR(mImpl->resources(), (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15052,6 +15318,13 @@
             unmarshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayProperties2KHR(mImpl->resources(), (VkDisplayProperties2KHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15145,6 +15418,13 @@
             unmarshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayPlaneProperties2KHR(mImpl->resources(), (VkDisplayPlaneProperties2KHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15247,6 +15527,13 @@
             unmarshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
         }
     }
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            transform_fromhost_VkDisplayModeProperties2KHR(mImpl->resources(), (VkDisplayModeProperties2KHR*)(pProperties + i));
+        }
+    }
     VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayModeProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15276,7 +15563,7 @@
     }
     if (local_pDisplayPlaneInfo)
     {
-        transform_VkDisplayPlaneInfo2KHR(mImpl->resources(), (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
+        transform_tohost_VkDisplayPlaneInfo2KHR(mImpl->resources(), (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
     }
     countingStream->rewind();
     {
@@ -15297,6 +15584,10 @@
     marshal_VkDisplayPlaneInfo2KHR(stream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
     marshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
     unmarshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
+    if (pCapabilities)
+    {
+        transform_fromhost_VkDisplayPlaneCapabilities2KHR(mImpl->resources(), (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
+    }
     VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayPlaneCapabilities2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15334,7 +15625,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -15355,6 +15646,10 @@
     marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetBufferMemoryRequirements2KHR(
@@ -15378,7 +15673,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -15399,6 +15694,10 @@
     marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
+    }
 }
 
 void VkEncoder::vkGetImageSparseMemoryRequirements2KHR(
@@ -15423,7 +15722,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
+        transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -15500,6 +15799,13 @@
             unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    if (pSparseMemoryRequirements)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        {
+            transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+        }
+    }
 }
 
 #endif
@@ -15536,11 +15842,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -15615,7 +15921,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -15683,7 +15989,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
-            transform_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
+            transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
         }
     }
     countingStream->rewind();
@@ -15746,7 +16052,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
-            transform_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
+            transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
         }
     }
     countingStream->rewind();
@@ -15804,7 +16110,7 @@
     }
     if (local_pCreateInfo)
     {
-        transform_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
+        transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     }
     countingStream->rewind();
     {
@@ -15825,6 +16131,10 @@
     marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
     unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
+    if (pSupport)
+    {
+        transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
+    }
 }
 
 #endif
@@ -16167,11 +16477,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDebugReportCallbackCreateInfoEXT(mImpl->resources(), (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
+        transform_tohost_VkDebugReportCallbackCreateInfoEXT(mImpl->resources(), (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -16248,7 +16558,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -16392,7 +16702,7 @@
     }
     if (local_pTagInfo)
     {
-        transform_VkDebugMarkerObjectTagInfoEXT(mImpl->resources(), (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
+        transform_tohost_VkDebugMarkerObjectTagInfoEXT(mImpl->resources(), (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
     }
     countingStream->rewind();
     {
@@ -16438,7 +16748,7 @@
     }
     if (local_pNameInfo)
     {
-        transform_VkDebugMarkerObjectNameInfoEXT(mImpl->resources(), (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
+        transform_tohost_VkDebugMarkerObjectNameInfoEXT(mImpl->resources(), (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
     }
     countingStream->rewind();
     {
@@ -16484,7 +16794,7 @@
     }
     if (local_pMarkerInfo)
     {
-        transform_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
+        transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
     }
     countingStream->rewind();
     {
@@ -16550,7 +16860,7 @@
     }
     if (local_pMarkerInfo)
     {
-        transform_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
+        transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
     }
     countingStream->rewind();
     {
@@ -16883,6 +17193,10 @@
     stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
     marshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
     unmarshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
+    if (pExternalImageFormatProperties)
+    {
+        transform_fromhost_VkExternalImageFormatPropertiesNV(mImpl->resources(), (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
+    }
     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16912,7 +17226,7 @@
     local_device = device;
     local_memory = memory;
     local_handleType = handleType;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_1238;
@@ -16982,11 +17296,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkViSurfaceCreateInfoNN(mImpl->resources(), (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
+        transform_tohost_VkViSurfaceCreateInfoNN(mImpl->resources(), (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -17063,7 +17377,7 @@
     }
     if (local_pConditionalRenderingBegin)
     {
-        transform_VkConditionalRenderingBeginInfoEXT(mImpl->resources(), (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
+        transform_tohost_VkConditionalRenderingBeginInfoEXT(mImpl->resources(), (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
     }
     countingStream->rewind();
     {
@@ -17131,7 +17445,7 @@
     }
     if (local_pProcessCommandsInfo)
     {
-        transform_VkCmdProcessCommandsInfoNVX(mImpl->resources(), (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
+        transform_tohost_VkCmdProcessCommandsInfoNVX(mImpl->resources(), (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
     }
     countingStream->rewind();
     {
@@ -17171,7 +17485,7 @@
     }
     if (local_pReserveSpaceInfo)
     {
-        transform_VkCmdReserveSpaceForCommandsInfoNVX(mImpl->resources(), (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
+        transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(mImpl->resources(), (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
     }
     countingStream->rewind();
     {
@@ -17221,11 +17535,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkIndirectCommandsLayoutCreateInfoNVX(mImpl->resources(), (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
+        transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(mImpl->resources(), (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -17302,7 +17616,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -17371,11 +17685,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkObjectTableCreateInfoNVX(mImpl->resources(), (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
+        transform_tohost_VkObjectTableCreateInfoNVX(mImpl->resources(), (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -17452,7 +17766,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -17647,7 +17961,15 @@
     marshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
     marshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
     unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
+    if (pFeatures)
+    {
+        transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(mImpl->resources(), (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
+    }
     unmarshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
+    if (pLimits)
+    {
+        transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(mImpl->resources(), (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
+    }
 }
 
 #endif
@@ -17683,7 +18005,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
         {
-            transform_VkViewportWScalingNV(mImpl->resources(), (VkViewportWScalingNV*)(local_pViewportWScalings + i));
+            transform_tohost_VkViewportWScalingNV(mImpl->resources(), (VkViewportWScalingNV*)(local_pViewportWScalings + i));
         }
     }
     countingStream->rewind();
@@ -17896,6 +18218,10 @@
     stream->write((uint64_t*)&cgen_var_1311, 1 * 8);
     marshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
+    if (pSurfaceCapabilities)
+    {
+        transform_fromhost_VkSurfaceCapabilities2EXT(mImpl->resources(), (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
+    }
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17929,7 +18255,7 @@
     }
     if (local_pDisplayPowerInfo)
     {
-        transform_VkDisplayPowerInfoEXT(mImpl->resources(), (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
+        transform_tohost_VkDisplayPowerInfoEXT(mImpl->resources(), (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
     }
     countingStream->rewind();
     {
@@ -17991,11 +18317,11 @@
     local_pAllocator = nullptr;
     if (local_pDeviceEventInfo)
     {
-        transform_VkDeviceEventInfoEXT(mImpl->resources(), (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
+        transform_tohost_VkDeviceEventInfoEXT(mImpl->resources(), (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -18079,11 +18405,11 @@
     local_pAllocator = nullptr;
     if (local_pDisplayEventInfo)
     {
-        transform_VkDisplayEventInfoEXT(mImpl->resources(), (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
+        transform_tohost_VkDisplayEventInfoEXT(mImpl->resources(), (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -18229,6 +18555,10 @@
     stream->write((uint64_t*)&cgen_var_1339, 1 * 8);
     marshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
+    if (pDisplayTimingProperties)
+    {
+        transform_fromhost_VkRefreshCycleDurationGOOGLE(mImpl->resources(), (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
+    }
     VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkGetRefreshCycleDurationGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18331,6 +18661,13 @@
             unmarshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
         }
     }
+    if (pPresentationTimings)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+        {
+            transform_fromhost_VkPastPresentationTimingGOOGLE(mImpl->resources(), (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
+        }
+    }
     VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkGetPastPresentationTimingGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18382,7 +18719,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
         {
-            transform_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pDiscardRectangles + i));
+            transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pDiscardRectangles + i));
         }
     }
     countingStream->rewind();
@@ -18454,7 +18791,7 @@
     {
         for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
         {
-            transform_VkHdrMetadataEXT(mImpl->resources(), (VkHdrMetadataEXT*)(local_pMetadata + i));
+            transform_tohost_VkHdrMetadataEXT(mImpl->resources(), (VkHdrMetadataEXT*)(local_pMetadata + i));
         }
     }
     countingStream->rewind();
@@ -18529,11 +18866,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkIOSSurfaceCreateInfoMVK(mImpl->resources(), (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
+        transform_tohost_VkIOSSurfaceCreateInfoMVK(mImpl->resources(), (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -18616,11 +18953,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkMacOSSurfaceCreateInfoMVK(mImpl->resources(), (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
+        transform_tohost_VkMacOSSurfaceCreateInfoMVK(mImpl->resources(), (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -18697,7 +19034,7 @@
     }
     if (local_pNameInfo)
     {
-        transform_VkDebugUtilsObjectNameInfoEXT(mImpl->resources(), (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
+        transform_tohost_VkDebugUtilsObjectNameInfoEXT(mImpl->resources(), (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
     }
     countingStream->rewind();
     {
@@ -18743,7 +19080,7 @@
     }
     if (local_pTagInfo)
     {
-        transform_VkDebugUtilsObjectTagInfoEXT(mImpl->resources(), (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
+        transform_tohost_VkDebugUtilsObjectTagInfoEXT(mImpl->resources(), (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
     }
     countingStream->rewind();
     {
@@ -18789,7 +19126,7 @@
     }
     if (local_pLabelInfo)
     {
-        transform_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+        transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     countingStream->rewind();
     {
@@ -18855,7 +19192,7 @@
     }
     if (local_pLabelInfo)
     {
-        transform_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+        transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     countingStream->rewind();
     {
@@ -18895,7 +19232,7 @@
     }
     if (local_pLabelInfo)
     {
-        transform_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+        transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     countingStream->rewind();
     {
@@ -18961,7 +19298,7 @@
     }
     if (local_pLabelInfo)
     {
-        transform_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+        transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     countingStream->rewind();
     {
@@ -19011,11 +19348,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkDebugUtilsMessengerCreateInfoEXT(mImpl->resources(), (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
+        transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(mImpl->resources(), (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -19092,7 +19429,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -19157,7 +19494,7 @@
     }
     if (local_pCallbackData)
     {
-        transform_VkDebugUtilsMessengerCallbackDataEXT(mImpl->resources(), (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
+        transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(mImpl->resources(), (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
     }
     countingStream->rewind();
     {
@@ -19220,6 +19557,10 @@
     stream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
     marshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
     unmarshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(mImpl->resources(), (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
+    }
     VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19249,7 +19590,7 @@
     }
     if (local_pInfo)
     {
-        transform_VkMemoryGetAndroidHardwareBufferInfoANDROID(mImpl->resources(), (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
+        transform_tohost_VkMemoryGetAndroidHardwareBufferInfoANDROID(mImpl->resources(), (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
     }
     countingStream->rewind();
     {
@@ -19310,7 +19651,7 @@
     }
     if (local_pSampleLocationsInfo)
     {
-        transform_VkSampleLocationsInfoEXT(mImpl->resources(), (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
+        transform_tohost_VkSampleLocationsInfoEXT(mImpl->resources(), (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
     }
     countingStream->rewind();
     {
@@ -19363,6 +19704,10 @@
     stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
     marshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
     unmarshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
+    if (pMultisampleProperties)
+    {
+        transform_fromhost_VkMultisamplePropertiesEXT(mImpl->resources(), (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
+    }
 }
 
 #endif
@@ -19407,11 +19752,11 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_VkValidationCacheCreateInfoEXT(mImpl->resources(), (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
+        transform_tohost_VkValidationCacheCreateInfoEXT(mImpl->resources(), (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -19488,7 +19833,7 @@
     local_pAllocator = nullptr;
     if (local_pAllocator)
     {
-        transform_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
+        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
     }
     countingStream->rewind();
     {
@@ -19751,6 +20096,10 @@
     }
     marshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
     unmarshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
+    if (pMemoryHostPointerProperties)
+    {
+        transform_fromhost_VkMemoryHostPointerPropertiesEXT(mImpl->resources(), (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
+    }
     VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryHostPointerPropertiesEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19951,6 +20300,13 @@
             unmarshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
         }
     }
+    if (pCheckpointData)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+        {
+            transform_fromhost_VkCheckpointDataNV(mImpl->resources(), (VkCheckpointDataNV*)(pCheckpointData + i));
+        }
+    }
 }
 
 #endif
@@ -19970,7 +20326,7 @@
     VkDeviceMemory local_memory;
     local_device = device;
     local_memory = memory;
-    mImpl->resources()->deviceMemoryTransform(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     countingStream->rewind();
     {
         uint64_t cgen_var_1461;
diff --git a/system/vulkan_enc/VkEventHandler.cpp b/system/vulkan_enc/VkEventHandler.cpp
deleted file mode 100644
index 2490f1a..0000000
--- a/system/vulkan_enc/VkEventHandler.cpp
+++ /dev/null
@@ -1,3167 +0,0 @@
-// Copyright (C) 2018 The Android Open Source Project
-// Copyright (C) 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Autogenerated module VkEventHandler
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
-// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
-// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
-// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
-
-#include "VkEventHandler.h"
-
-
-#include "VkEncoder.h"
-
-
-namespace goldfish_vk {
-
-
-VkEventHandler::VkEventHandler() { }
-VkEventHandler::~VkEventHandler() { }
-#ifdef VK_VERSION_1_0
-VkResult VkEventHandler::on_vkCreateInstance(
-    void*,
-    VkResult,
-    const VkInstanceCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkInstance*)
-{
-    VkResult on_vkCreateInstance_VkResult_return = (VkResult)0;
-    return on_vkCreateInstance_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyInstance(
-    void*,
-    VkInstance,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkEnumeratePhysicalDevices(
-    void*,
-    VkResult,
-    VkInstance,
-    uint32_t*,
-    VkPhysicalDevice*)
-{
-    VkResult on_vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
-    return on_vkEnumeratePhysicalDevices_VkResult_return;
-}
-void VkEventHandler::on_vkGetPhysicalDeviceFeatures(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceFeatures*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceFormatProperties(
-    void*,
-    VkPhysicalDevice,
-    VkFormat,
-    VkFormatProperties*)
-{
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceImageFormatProperties(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkFormat,
-    VkImageType,
-    VkImageTiling,
-    VkImageUsageFlags,
-    VkImageCreateFlags,
-    VkImageFormatProperties*)
-{
-    VkResult on_vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
-}
-void VkEventHandler::on_vkGetPhysicalDeviceProperties(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceProperties*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceQueueFamilyProperties(
-    void*,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkQueueFamilyProperties*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceMemoryProperties(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceMemoryProperties*)
-{
-}
-PFN_vkVoidFunction VkEventHandler::on_vkGetInstanceProcAddr(
-    void*,
-    PFN_vkVoidFunction,
-    VkInstance,
-    const char*)
-{
-    PFN_vkVoidFunction on_vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
-    return on_vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
-}
-PFN_vkVoidFunction VkEventHandler::on_vkGetDeviceProcAddr(
-    void*,
-    PFN_vkVoidFunction,
-    VkDevice,
-    const char*)
-{
-    PFN_vkVoidFunction on_vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
-    return on_vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
-}
-VkResult VkEventHandler::on_vkCreateDevice(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkDeviceCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkDevice*)
-{
-    VkResult on_vkCreateDevice_VkResult_return = (VkResult)0;
-    return on_vkCreateDevice_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDevice(
-    void*,
-    VkDevice,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkEnumerateInstanceExtensionProperties(
-    void*,
-    VkResult,
-    const char*,
-    uint32_t*,
-    VkExtensionProperties*)
-{
-    VkResult on_vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
-    return on_vkEnumerateInstanceExtensionProperties_VkResult_return;
-}
-VkResult VkEventHandler::on_vkEnumerateDeviceExtensionProperties(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const char*,
-    uint32_t*,
-    VkExtensionProperties*)
-{
-    VkResult on_vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
-    return on_vkEnumerateDeviceExtensionProperties_VkResult_return;
-}
-VkResult VkEventHandler::on_vkEnumerateInstanceLayerProperties(
-    void*,
-    VkResult,
-    uint32_t*,
-    VkLayerProperties*)
-{
-    VkResult on_vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
-    return on_vkEnumerateInstanceLayerProperties_VkResult_return;
-}
-VkResult VkEventHandler::on_vkEnumerateDeviceLayerProperties(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkLayerProperties*)
-{
-    VkResult on_vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
-    return on_vkEnumerateDeviceLayerProperties_VkResult_return;
-}
-void VkEventHandler::on_vkGetDeviceQueue(
-    void*,
-    VkDevice,
-    uint32_t,
-    uint32_t,
-    VkQueue*)
-{
-}
-VkResult VkEventHandler::on_vkQueueSubmit(
-    void*,
-    VkResult,
-    VkQueue,
-    uint32_t,
-    const VkSubmitInfo*,
-    VkFence)
-{
-    VkResult on_vkQueueSubmit_VkResult_return = (VkResult)0;
-    return on_vkQueueSubmit_VkResult_return;
-}
-VkResult VkEventHandler::on_vkQueueWaitIdle(
-    void*,
-    VkResult,
-    VkQueue)
-{
-    VkResult on_vkQueueWaitIdle_VkResult_return = (VkResult)0;
-    return on_vkQueueWaitIdle_VkResult_return;
-}
-VkResult VkEventHandler::on_vkDeviceWaitIdle(
-    void*,
-    VkResult,
-    VkDevice)
-{
-    VkResult on_vkDeviceWaitIdle_VkResult_return = (VkResult)0;
-    return on_vkDeviceWaitIdle_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAllocateMemory(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkMemoryAllocateInfo*,
-    const VkAllocationCallbacks*,
-    VkDeviceMemory*)
-{
-    VkResult on_vkAllocateMemory_VkResult_return = (VkResult)0;
-    return on_vkAllocateMemory_VkResult_return;
-}
-void VkEventHandler::on_vkFreeMemory(
-    void*,
-    VkDevice,
-    VkDeviceMemory,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkMapMemory(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDeviceMemory,
-    VkDeviceSize,
-    VkDeviceSize,
-    VkMemoryMapFlags,
-    void**)
-{
-    VkResult on_vkMapMemory_VkResult_return = (VkResult)0;
-    return on_vkMapMemory_VkResult_return;
-}
-void VkEventHandler::on_vkUnmapMemory(
-    void*,
-    VkDevice,
-    VkDeviceMemory)
-{
-}
-VkResult VkEventHandler::on_vkFlushMappedMemoryRanges(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkMappedMemoryRange*)
-{
-    VkResult on_vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
-    return on_vkFlushMappedMemoryRanges_VkResult_return;
-}
-VkResult VkEventHandler::on_vkInvalidateMappedMemoryRanges(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkMappedMemoryRange*)
-{
-    VkResult on_vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
-    return on_vkInvalidateMappedMemoryRanges_VkResult_return;
-}
-void VkEventHandler::on_vkGetDeviceMemoryCommitment(
-    void*,
-    VkDevice,
-    VkDeviceMemory,
-    VkDeviceSize*)
-{
-}
-VkResult VkEventHandler::on_vkBindBufferMemory(
-    void*,
-    VkResult,
-    VkDevice,
-    VkBuffer,
-    VkDeviceMemory,
-    VkDeviceSize)
-{
-    VkResult on_vkBindBufferMemory_VkResult_return = (VkResult)0;
-    return on_vkBindBufferMemory_VkResult_return;
-}
-VkResult VkEventHandler::on_vkBindImageMemory(
-    void*,
-    VkResult,
-    VkDevice,
-    VkImage,
-    VkDeviceMemory,
-    VkDeviceSize)
-{
-    VkResult on_vkBindImageMemory_VkResult_return = (VkResult)0;
-    return on_vkBindImageMemory_VkResult_return;
-}
-void VkEventHandler::on_vkGetBufferMemoryRequirements(
-    void*,
-    VkDevice,
-    VkBuffer,
-    VkMemoryRequirements*)
-{
-}
-void VkEventHandler::on_vkGetImageMemoryRequirements(
-    void*,
-    VkDevice,
-    VkImage,
-    VkMemoryRequirements*)
-{
-}
-void VkEventHandler::on_vkGetImageSparseMemoryRequirements(
-    void*,
-    VkDevice,
-    VkImage,
-    uint32_t*,
-    VkSparseImageMemoryRequirements*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceSparseImageFormatProperties(
-    void*,
-    VkPhysicalDevice,
-    VkFormat,
-    VkImageType,
-    VkSampleCountFlagBits,
-    VkImageUsageFlags,
-    VkImageTiling,
-    uint32_t*,
-    VkSparseImageFormatProperties*)
-{
-}
-VkResult VkEventHandler::on_vkQueueBindSparse(
-    void*,
-    VkResult,
-    VkQueue,
-    uint32_t,
-    const VkBindSparseInfo*,
-    VkFence)
-{
-    VkResult on_vkQueueBindSparse_VkResult_return = (VkResult)0;
-    return on_vkQueueBindSparse_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateFence(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkFenceCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkFence*)
-{
-    VkResult on_vkCreateFence_VkResult_return = (VkResult)0;
-    return on_vkCreateFence_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyFence(
-    void*,
-    VkDevice,
-    VkFence,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkResetFences(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkFence*)
-{
-    VkResult on_vkResetFences_VkResult_return = (VkResult)0;
-    return on_vkResetFences_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetFenceStatus(
-    void*,
-    VkResult,
-    VkDevice,
-    VkFence)
-{
-    VkResult on_vkGetFenceStatus_VkResult_return = (VkResult)0;
-    return on_vkGetFenceStatus_VkResult_return;
-}
-VkResult VkEventHandler::on_vkWaitForFences(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkFence*,
-    VkBool32,
-    uint64_t)
-{
-    VkResult on_vkWaitForFences_VkResult_return = (VkResult)0;
-    return on_vkWaitForFences_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateSemaphore(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSemaphoreCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkSemaphore*)
-{
-    VkResult on_vkCreateSemaphore_VkResult_return = (VkResult)0;
-    return on_vkCreateSemaphore_VkResult_return;
-}
-void VkEventHandler::on_vkDestroySemaphore(
-    void*,
-    VkDevice,
-    VkSemaphore,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateEvent(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkEventCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkEvent*)
-{
-    VkResult on_vkCreateEvent_VkResult_return = (VkResult)0;
-    return on_vkCreateEvent_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyEvent(
-    void*,
-    VkDevice,
-    VkEvent,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkGetEventStatus(
-    void*,
-    VkResult,
-    VkDevice,
-    VkEvent)
-{
-    VkResult on_vkGetEventStatus_VkResult_return = (VkResult)0;
-    return on_vkGetEventStatus_VkResult_return;
-}
-VkResult VkEventHandler::on_vkSetEvent(
-    void*,
-    VkResult,
-    VkDevice,
-    VkEvent)
-{
-    VkResult on_vkSetEvent_VkResult_return = (VkResult)0;
-    return on_vkSetEvent_VkResult_return;
-}
-VkResult VkEventHandler::on_vkResetEvent(
-    void*,
-    VkResult,
-    VkDevice,
-    VkEvent)
-{
-    VkResult on_vkResetEvent_VkResult_return = (VkResult)0;
-    return on_vkResetEvent_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateQueryPool(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkQueryPoolCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkQueryPool*)
-{
-    VkResult on_vkCreateQueryPool_VkResult_return = (VkResult)0;
-    return on_vkCreateQueryPool_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyQueryPool(
-    void*,
-    VkDevice,
-    VkQueryPool,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkGetQueryPoolResults(
-    void*,
-    VkResult,
-    VkDevice,
-    VkQueryPool,
-    uint32_t,
-    uint32_t,
-    size_t,
-    void*,
-    VkDeviceSize,
-    VkQueryResultFlags)
-{
-    VkResult on_vkGetQueryPoolResults_VkResult_return = (VkResult)0;
-    return on_vkGetQueryPoolResults_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateBuffer(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkBufferCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkBuffer*)
-{
-    VkResult on_vkCreateBuffer_VkResult_return = (VkResult)0;
-    return on_vkCreateBuffer_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyBuffer(
-    void*,
-    VkDevice,
-    VkBuffer,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateBufferView(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkBufferViewCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkBufferView*)
-{
-    VkResult on_vkCreateBufferView_VkResult_return = (VkResult)0;
-    return on_vkCreateBufferView_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyBufferView(
-    void*,
-    VkDevice,
-    VkBufferView,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateImage(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImageCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkImage*)
-{
-    VkResult on_vkCreateImage_VkResult_return = (VkResult)0;
-    return on_vkCreateImage_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyImage(
-    void*,
-    VkDevice,
-    VkImage,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkGetImageSubresourceLayout(
-    void*,
-    VkDevice,
-    VkImage,
-    const VkImageSubresource*,
-    VkSubresourceLayout*)
-{
-}
-VkResult VkEventHandler::on_vkCreateImageView(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImageViewCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkImageView*)
-{
-    VkResult on_vkCreateImageView_VkResult_return = (VkResult)0;
-    return on_vkCreateImageView_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyImageView(
-    void*,
-    VkDevice,
-    VkImageView,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateShaderModule(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkShaderModuleCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkShaderModule*)
-{
-    VkResult on_vkCreateShaderModule_VkResult_return = (VkResult)0;
-    return on_vkCreateShaderModule_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyShaderModule(
-    void*,
-    VkDevice,
-    VkShaderModule,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreatePipelineCache(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkPipelineCacheCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkPipelineCache*)
-{
-    VkResult on_vkCreatePipelineCache_VkResult_return = (VkResult)0;
-    return on_vkCreatePipelineCache_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyPipelineCache(
-    void*,
-    VkDevice,
-    VkPipelineCache,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkGetPipelineCacheData(
-    void*,
-    VkResult,
-    VkDevice,
-    VkPipelineCache,
-    size_t*,
-    void*)
-{
-    VkResult on_vkGetPipelineCacheData_VkResult_return = (VkResult)0;
-    return on_vkGetPipelineCacheData_VkResult_return;
-}
-VkResult VkEventHandler::on_vkMergePipelineCaches(
-    void*,
-    VkResult,
-    VkDevice,
-    VkPipelineCache,
-    uint32_t,
-    const VkPipelineCache*)
-{
-    VkResult on_vkMergePipelineCaches_VkResult_return = (VkResult)0;
-    return on_vkMergePipelineCaches_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateGraphicsPipelines(
-    void*,
-    VkResult,
-    VkDevice,
-    VkPipelineCache,
-    uint32_t,
-    const VkGraphicsPipelineCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkPipeline*)
-{
-    VkResult on_vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
-    return on_vkCreateGraphicsPipelines_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateComputePipelines(
-    void*,
-    VkResult,
-    VkDevice,
-    VkPipelineCache,
-    uint32_t,
-    const VkComputePipelineCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkPipeline*)
-{
-    VkResult on_vkCreateComputePipelines_VkResult_return = (VkResult)0;
-    return on_vkCreateComputePipelines_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyPipeline(
-    void*,
-    VkDevice,
-    VkPipeline,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreatePipelineLayout(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkPipelineLayoutCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkPipelineLayout*)
-{
-    VkResult on_vkCreatePipelineLayout_VkResult_return = (VkResult)0;
-    return on_vkCreatePipelineLayout_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyPipelineLayout(
-    void*,
-    VkDevice,
-    VkPipelineLayout,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateSampler(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSamplerCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkSampler*)
-{
-    VkResult on_vkCreateSampler_VkResult_return = (VkResult)0;
-    return on_vkCreateSampler_VkResult_return;
-}
-void VkEventHandler::on_vkDestroySampler(
-    void*,
-    VkDevice,
-    VkSampler,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateDescriptorSetLayout(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDescriptorSetLayoutCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkDescriptorSetLayout*)
-{
-    VkResult on_vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
-    return on_vkCreateDescriptorSetLayout_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDescriptorSetLayout(
-    void*,
-    VkDevice,
-    VkDescriptorSetLayout,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateDescriptorPool(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDescriptorPoolCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkDescriptorPool*)
-{
-    VkResult on_vkCreateDescriptorPool_VkResult_return = (VkResult)0;
-    return on_vkCreateDescriptorPool_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDescriptorPool(
-    void*,
-    VkDevice,
-    VkDescriptorPool,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkResetDescriptorPool(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDescriptorPool,
-    VkDescriptorPoolResetFlags)
-{
-    VkResult on_vkResetDescriptorPool_VkResult_return = (VkResult)0;
-    return on_vkResetDescriptorPool_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAllocateDescriptorSets(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDescriptorSetAllocateInfo*,
-    VkDescriptorSet*)
-{
-    VkResult on_vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
-    return on_vkAllocateDescriptorSets_VkResult_return;
-}
-VkResult VkEventHandler::on_vkFreeDescriptorSets(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDescriptorPool,
-    uint32_t,
-    const VkDescriptorSet*)
-{
-    VkResult on_vkFreeDescriptorSets_VkResult_return = (VkResult)0;
-    return on_vkFreeDescriptorSets_VkResult_return;
-}
-void VkEventHandler::on_vkUpdateDescriptorSets(
-    void*,
-    VkDevice,
-    uint32_t,
-    const VkWriteDescriptorSet*,
-    uint32_t,
-    const VkCopyDescriptorSet*)
-{
-}
-VkResult VkEventHandler::on_vkCreateFramebuffer(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkFramebufferCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkFramebuffer*)
-{
-    VkResult on_vkCreateFramebuffer_VkResult_return = (VkResult)0;
-    return on_vkCreateFramebuffer_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyFramebuffer(
-    void*,
-    VkDevice,
-    VkFramebuffer,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateRenderPass(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkRenderPassCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkRenderPass*)
-{
-    VkResult on_vkCreateRenderPass_VkResult_return = (VkResult)0;
-    return on_vkCreateRenderPass_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyRenderPass(
-    void*,
-    VkDevice,
-    VkRenderPass,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkGetRenderAreaGranularity(
-    void*,
-    VkDevice,
-    VkRenderPass,
-    VkExtent2D*)
-{
-}
-VkResult VkEventHandler::on_vkCreateCommandPool(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkCommandPoolCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkCommandPool*)
-{
-    VkResult on_vkCreateCommandPool_VkResult_return = (VkResult)0;
-    return on_vkCreateCommandPool_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyCommandPool(
-    void*,
-    VkDevice,
-    VkCommandPool,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkResetCommandPool(
-    void*,
-    VkResult,
-    VkDevice,
-    VkCommandPool,
-    VkCommandPoolResetFlags)
-{
-    VkResult on_vkResetCommandPool_VkResult_return = (VkResult)0;
-    return on_vkResetCommandPool_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAllocateCommandBuffers(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkCommandBufferAllocateInfo*,
-    VkCommandBuffer*)
-{
-    VkResult on_vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
-    return on_vkAllocateCommandBuffers_VkResult_return;
-}
-void VkEventHandler::on_vkFreeCommandBuffers(
-    void*,
-    VkDevice,
-    VkCommandPool,
-    uint32_t,
-    const VkCommandBuffer*)
-{
-}
-VkResult VkEventHandler::on_vkBeginCommandBuffer(
-    void*,
-    VkResult,
-    VkCommandBuffer,
-    const VkCommandBufferBeginInfo*)
-{
-    VkResult on_vkBeginCommandBuffer_VkResult_return = (VkResult)0;
-    return on_vkBeginCommandBuffer_VkResult_return;
-}
-VkResult VkEventHandler::on_vkEndCommandBuffer(
-    void*,
-    VkResult,
-    VkCommandBuffer)
-{
-    VkResult on_vkEndCommandBuffer_VkResult_return = (VkResult)0;
-    return on_vkEndCommandBuffer_VkResult_return;
-}
-VkResult VkEventHandler::on_vkResetCommandBuffer(
-    void*,
-    VkResult,
-    VkCommandBuffer,
-    VkCommandBufferResetFlags)
-{
-    VkResult on_vkResetCommandBuffer_VkResult_return = (VkResult)0;
-    return on_vkResetCommandBuffer_VkResult_return;
-}
-void VkEventHandler::on_vkCmdBindPipeline(
-    void*,
-    VkCommandBuffer,
-    VkPipelineBindPoint,
-    VkPipeline)
-{
-}
-void VkEventHandler::on_vkCmdSetViewport(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    const VkViewport*)
-{
-}
-void VkEventHandler::on_vkCmdSetScissor(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    const VkRect2D*)
-{
-}
-void VkEventHandler::on_vkCmdSetLineWidth(
-    void*,
-    VkCommandBuffer,
-    float)
-{
-}
-void VkEventHandler::on_vkCmdSetDepthBias(
-    void*,
-    VkCommandBuffer,
-    float,
-    float,
-    float)
-{
-}
-void VkEventHandler::on_vkCmdSetBlendConstants(
-    void*,
-    VkCommandBuffer,
-    const float)
-{
-}
-void VkEventHandler::on_vkCmdSetDepthBounds(
-    void*,
-    VkCommandBuffer,
-    float,
-    float)
-{
-}
-void VkEventHandler::on_vkCmdSetStencilCompareMask(
-    void*,
-    VkCommandBuffer,
-    VkStencilFaceFlags,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdSetStencilWriteMask(
-    void*,
-    VkCommandBuffer,
-    VkStencilFaceFlags,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdSetStencilReference(
-    void*,
-    VkCommandBuffer,
-    VkStencilFaceFlags,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdBindDescriptorSets(
-    void*,
-    VkCommandBuffer,
-    VkPipelineBindPoint,
-    VkPipelineLayout,
-    uint32_t,
-    uint32_t,
-    const VkDescriptorSet*,
-    uint32_t,
-    const uint32_t*)
-{
-}
-void VkEventHandler::on_vkCmdBindIndexBuffer(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkIndexType)
-{
-}
-void VkEventHandler::on_vkCmdBindVertexBuffers(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    const VkBuffer*,
-    const VkDeviceSize*)
-{
-}
-void VkEventHandler::on_vkCmdDraw(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDrawIndexed(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    int32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDrawIndirect(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDrawIndexedIndirect(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDispatch(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDispatchIndirect(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize)
-{
-}
-void VkEventHandler::on_vkCmdCopyBuffer(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkBuffer,
-    uint32_t,
-    const VkBufferCopy*)
-{
-}
-void VkEventHandler::on_vkCmdCopyImage(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    VkImage,
-    VkImageLayout,
-    uint32_t,
-    const VkImageCopy*)
-{
-}
-void VkEventHandler::on_vkCmdBlitImage(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    VkImage,
-    VkImageLayout,
-    uint32_t,
-    const VkImageBlit*,
-    VkFilter)
-{
-}
-void VkEventHandler::on_vkCmdCopyBufferToImage(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkImage,
-    VkImageLayout,
-    uint32_t,
-    const VkBufferImageCopy*)
-{
-}
-void VkEventHandler::on_vkCmdCopyImageToBuffer(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    VkBuffer,
-    uint32_t,
-    const VkBufferImageCopy*)
-{
-}
-void VkEventHandler::on_vkCmdUpdateBuffer(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkDeviceSize,
-    const void*)
-{
-}
-void VkEventHandler::on_vkCmdFillBuffer(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkDeviceSize,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdClearColorImage(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    const VkClearColorValue*,
-    uint32_t,
-    const VkImageSubresourceRange*)
-{
-}
-void VkEventHandler::on_vkCmdClearDepthStencilImage(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    const VkClearDepthStencilValue*,
-    uint32_t,
-    const VkImageSubresourceRange*)
-{
-}
-void VkEventHandler::on_vkCmdClearAttachments(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    const VkClearAttachment*,
-    uint32_t,
-    const VkClearRect*)
-{
-}
-void VkEventHandler::on_vkCmdResolveImage(
-    void*,
-    VkCommandBuffer,
-    VkImage,
-    VkImageLayout,
-    VkImage,
-    VkImageLayout,
-    uint32_t,
-    const VkImageResolve*)
-{
-}
-void VkEventHandler::on_vkCmdSetEvent(
-    void*,
-    VkCommandBuffer,
-    VkEvent,
-    VkPipelineStageFlags)
-{
-}
-void VkEventHandler::on_vkCmdResetEvent(
-    void*,
-    VkCommandBuffer,
-    VkEvent,
-    VkPipelineStageFlags)
-{
-}
-void VkEventHandler::on_vkCmdWaitEvents(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    const VkEvent*,
-    VkPipelineStageFlags,
-    VkPipelineStageFlags,
-    uint32_t,
-    const VkMemoryBarrier*,
-    uint32_t,
-    const VkBufferMemoryBarrier*,
-    uint32_t,
-    const VkImageMemoryBarrier*)
-{
-}
-void VkEventHandler::on_vkCmdPipelineBarrier(
-    void*,
-    VkCommandBuffer,
-    VkPipelineStageFlags,
-    VkPipelineStageFlags,
-    VkDependencyFlags,
-    uint32_t,
-    const VkMemoryBarrier*,
-    uint32_t,
-    const VkBufferMemoryBarrier*,
-    uint32_t,
-    const VkImageMemoryBarrier*)
-{
-}
-void VkEventHandler::on_vkCmdBeginQuery(
-    void*,
-    VkCommandBuffer,
-    VkQueryPool,
-    uint32_t,
-    VkQueryControlFlags)
-{
-}
-void VkEventHandler::on_vkCmdEndQuery(
-    void*,
-    VkCommandBuffer,
-    VkQueryPool,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdResetQueryPool(
-    void*,
-    VkCommandBuffer,
-    VkQueryPool,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdWriteTimestamp(
-    void*,
-    VkCommandBuffer,
-    VkPipelineStageFlagBits,
-    VkQueryPool,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdCopyQueryPoolResults(
-    void*,
-    VkCommandBuffer,
-    VkQueryPool,
-    uint32_t,
-    uint32_t,
-    VkBuffer,
-    VkDeviceSize,
-    VkDeviceSize,
-    VkQueryResultFlags)
-{
-}
-void VkEventHandler::on_vkCmdPushConstants(
-    void*,
-    VkCommandBuffer,
-    VkPipelineLayout,
-    VkShaderStageFlags,
-    uint32_t,
-    uint32_t,
-    const void*)
-{
-}
-void VkEventHandler::on_vkCmdBeginRenderPass(
-    void*,
-    VkCommandBuffer,
-    const VkRenderPassBeginInfo*,
-    VkSubpassContents)
-{
-}
-void VkEventHandler::on_vkCmdNextSubpass(
-    void*,
-    VkCommandBuffer,
-    VkSubpassContents)
-{
-}
-void VkEventHandler::on_vkCmdEndRenderPass(
-    void*,
-    VkCommandBuffer)
-{
-}
-void VkEventHandler::on_vkCmdExecuteCommands(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    const VkCommandBuffer*)
-{
-}
-#endif
-#ifdef VK_VERSION_1_1
-VkResult VkEventHandler::on_vkEnumerateInstanceVersion(
-    void*,
-    VkResult,
-    uint32_t*)
-{
-    VkResult on_vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
-    return on_vkEnumerateInstanceVersion_VkResult_return;
-}
-VkResult VkEventHandler::on_vkBindBufferMemory2(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkBindBufferMemoryInfo*)
-{
-    VkResult on_vkBindBufferMemory2_VkResult_return = (VkResult)0;
-    return on_vkBindBufferMemory2_VkResult_return;
-}
-VkResult VkEventHandler::on_vkBindImageMemory2(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkBindImageMemoryInfo*)
-{
-    VkResult on_vkBindImageMemory2_VkResult_return = (VkResult)0;
-    return on_vkBindImageMemory2_VkResult_return;
-}
-void VkEventHandler::on_vkGetDeviceGroupPeerMemoryFeatures(
-    void*,
-    VkDevice,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    VkPeerMemoryFeatureFlags*)
-{
-}
-void VkEventHandler::on_vkCmdSetDeviceMask(
-    void*,
-    VkCommandBuffer,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDispatchBase(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t)
-{
-}
-VkResult VkEventHandler::on_vkEnumeratePhysicalDeviceGroups(
-    void*,
-    VkResult,
-    VkInstance,
-    uint32_t*,
-    VkPhysicalDeviceGroupProperties*)
-{
-    VkResult on_vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
-    return on_vkEnumeratePhysicalDeviceGroups_VkResult_return;
-}
-void VkEventHandler::on_vkGetImageMemoryRequirements2(
-    void*,
-    VkDevice,
-    const VkImageMemoryRequirementsInfo2*,
-    VkMemoryRequirements2*)
-{
-}
-void VkEventHandler::on_vkGetBufferMemoryRequirements2(
-    void*,
-    VkDevice,
-    const VkBufferMemoryRequirementsInfo2*,
-    VkMemoryRequirements2*)
-{
-}
-void VkEventHandler::on_vkGetImageSparseMemoryRequirements2(
-    void*,
-    VkDevice,
-    const VkImageSparseMemoryRequirementsInfo2*,
-    uint32_t*,
-    VkSparseImageMemoryRequirements2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceFeatures2(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceFeatures2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceProperties2(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceFormatProperties2(
-    void*,
-    VkPhysicalDevice,
-    VkFormat,
-    VkFormatProperties2*)
-{
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceImageFormatProperties2(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceImageFormatInfo2*,
-    VkImageFormatProperties2*)
-{
-    VkResult on_vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
-}
-void VkEventHandler::on_vkGetPhysicalDeviceQueueFamilyProperties2(
-    void*,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkQueueFamilyProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceMemoryProperties2(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceMemoryProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceSparseImageFormatProperties2(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceSparseImageFormatInfo2*,
-    uint32_t*,
-    VkSparseImageFormatProperties2*)
-{
-}
-void VkEventHandler::on_vkTrimCommandPool(
-    void*,
-    VkDevice,
-    VkCommandPool,
-    VkCommandPoolTrimFlags)
-{
-}
-void VkEventHandler::on_vkGetDeviceQueue2(
-    void*,
-    VkDevice,
-    const VkDeviceQueueInfo2*,
-    VkQueue*)
-{
-}
-VkResult VkEventHandler::on_vkCreateSamplerYcbcrConversion(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSamplerYcbcrConversionCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkSamplerYcbcrConversion*)
-{
-    VkResult on_vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
-    return on_vkCreateSamplerYcbcrConversion_VkResult_return;
-}
-void VkEventHandler::on_vkDestroySamplerYcbcrConversion(
-    void*,
-    VkDevice,
-    VkSamplerYcbcrConversion,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateDescriptorUpdateTemplate(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDescriptorUpdateTemplateCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkDescriptorUpdateTemplate*)
-{
-    VkResult on_vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
-    return on_vkCreateDescriptorUpdateTemplate_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDescriptorUpdateTemplate(
-    void*,
-    VkDevice,
-    VkDescriptorUpdateTemplate,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkUpdateDescriptorSetWithTemplate(
-    void*,
-    VkDevice,
-    VkDescriptorSet,
-    VkDescriptorUpdateTemplate,
-    const void*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceExternalBufferProperties(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalBufferInfo*,
-    VkExternalBufferProperties*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceExternalFenceProperties(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalFenceInfo*,
-    VkExternalFenceProperties*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceExternalSemaphoreProperties(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalSemaphoreInfo*,
-    VkExternalSemaphoreProperties*)
-{
-}
-void VkEventHandler::on_vkGetDescriptorSetLayoutSupport(
-    void*,
-    VkDevice,
-    const VkDescriptorSetLayoutCreateInfo*,
-    VkDescriptorSetLayoutSupport*)
-{
-}
-#endif
-#ifdef VK_KHR_surface
-void VkEventHandler::on_vkDestroySurfaceKHR(
-    void*,
-    VkInstance,
-    VkSurfaceKHR,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceSupportKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t,
-    VkSurfaceKHR,
-    VkBool32*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkSurfaceKHR,
-    VkSurfaceCapabilitiesKHR*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceFormatsKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkSurfaceKHR,
-    uint32_t*,
-    VkSurfaceFormatKHR*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfacePresentModesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkSurfaceKHR,
-    uint32_t*,
-    VkPresentModeKHR*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_swapchain
-VkResult VkEventHandler::on_vkCreateSwapchainKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSwapchainCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSwapchainKHR*)
-{
-    VkResult on_vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateSwapchainKHR_VkResult_return;
-}
-void VkEventHandler::on_vkDestroySwapchainKHR(
-    void*,
-    VkDevice,
-    VkSwapchainKHR,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkGetSwapchainImagesKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR,
-    uint32_t*,
-    VkImage*)
-{
-    VkResult on_vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetSwapchainImagesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAcquireNextImageKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR,
-    uint64_t,
-    VkSemaphore,
-    VkFence,
-    uint32_t*)
-{
-    VkResult on_vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
-    return on_vkAcquireNextImageKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkQueuePresentKHR(
-    void*,
-    VkResult,
-    VkQueue,
-    const VkPresentInfoKHR*)
-{
-    VkResult on_vkQueuePresentKHR_VkResult_return = (VkResult)0;
-    return on_vkQueuePresentKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDeviceGroupPresentCapabilitiesKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDeviceGroupPresentCapabilitiesKHR*)
-{
-    VkResult on_vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDeviceGroupSurfacePresentModesKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSurfaceKHR,
-    VkDeviceGroupPresentModeFlagsKHR*)
-{
-    VkResult on_vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDevicePresentRectanglesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkSurfaceKHR,
-    uint32_t*,
-    VkRect2D*)
-{
-    VkResult on_vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAcquireNextImage2KHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkAcquireNextImageInfoKHR*,
-    uint32_t*)
-{
-    VkResult on_vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
-    return on_vkAcquireNextImage2KHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_display
-VkResult VkEventHandler::on_vkGetPhysicalDeviceDisplayPropertiesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkDisplayPropertiesKHR*)
-{
-    VkResult on_vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkDisplayPlanePropertiesKHR*)
-{
-    VkResult on_vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDisplayPlaneSupportedDisplaysKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t,
-    uint32_t*,
-    VkDisplayKHR*)
-{
-    VkResult on_vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
-    return on_vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDisplayModePropertiesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkDisplayKHR,
-    uint32_t*,
-    VkDisplayModePropertiesKHR*)
-{
-    VkResult on_vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetDisplayModePropertiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateDisplayModeKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkDisplayKHR,
-    const VkDisplayModeCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkDisplayModeKHR*)
-{
-    VkResult on_vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateDisplayModeKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDisplayPlaneCapabilitiesKHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkDisplayModeKHR,
-    uint32_t,
-    VkDisplayPlaneCapabilitiesKHR*)
-{
-    VkResult on_vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkCreateDisplayPlaneSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkDisplaySurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_display_swapchain
-VkResult VkEventHandler::on_vkCreateSharedSwapchainsKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkSwapchainCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSwapchainKHR*)
-{
-    VkResult on_vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateSharedSwapchainsKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_xlib_surface
-VkResult VkEventHandler::on_vkCreateXlibSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkXlibSurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateXlibSurfaceKHR_VkResult_return;
-}
-VkBool32 VkEventHandler::on_vkGetPhysicalDeviceXlibPresentationSupportKHR(
-    void*,
-    VkBool32,
-    VkPhysicalDevice,
-    uint32_t,
-    Display*,
-    VisualID)
-{
-    VkBool32 on_vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    return on_vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
-}
-#endif
-#ifdef VK_KHR_xcb_surface
-VkResult VkEventHandler::on_vkCreateXcbSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkXcbSurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateXcbSurfaceKHR_VkResult_return;
-}
-VkBool32 VkEventHandler::on_vkGetPhysicalDeviceXcbPresentationSupportKHR(
-    void*,
-    VkBool32,
-    VkPhysicalDevice,
-    uint32_t,
-    xcb_connection_t*,
-    xcb_visualid_t)
-{
-    VkBool32 on_vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    return on_vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
-}
-#endif
-#ifdef VK_KHR_wayland_surface
-VkResult VkEventHandler::on_vkCreateWaylandSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkWaylandSurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateWaylandSurfaceKHR_VkResult_return;
-}
-VkBool32 VkEventHandler::on_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
-    void*,
-    VkBool32,
-    VkPhysicalDevice,
-    uint32_t,
-    wl_display*)
-{
-    VkBool32 on_vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    return on_vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
-}
-#endif
-#ifdef VK_KHR_mir_surface
-VkResult VkEventHandler::on_vkCreateMirSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkMirSurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateMirSurfaceKHR_VkResult_return;
-}
-VkBool32 VkEventHandler::on_vkGetPhysicalDeviceMirPresentationSupportKHR(
-    void*,
-    VkBool32,
-    VkPhysicalDevice,
-    uint32_t,
-    MirConnection*)
-{
-    VkBool32 on_vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    return on_vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
-}
-#endif
-#ifdef VK_KHR_android_surface
-VkResult VkEventHandler::on_vkCreateAndroidSurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkAndroidSurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateAndroidSurfaceKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_win32_surface
-VkResult VkEventHandler::on_vkCreateWin32SurfaceKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkWin32SurfaceCreateInfoKHR*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateWin32SurfaceKHR_VkResult_return;
-}
-VkBool32 VkEventHandler::on_vkGetPhysicalDeviceWin32PresentationSupportKHR(
-    void*,
-    VkBool32,
-    VkPhysicalDevice,
-    uint32_t)
-{
-    VkBool32 on_vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    return on_vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
-}
-#endif
-#ifdef VK_KHR_sampler_mirror_clamp_to_edge
-#endif
-#ifdef VK_KHR_multiview
-#endif
-#ifdef VK_KHR_get_physical_device_properties2
-void VkEventHandler::on_vkGetPhysicalDeviceFeatures2KHR(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceFeatures2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceProperties2KHR(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceFormatProperties2KHR(
-    void*,
-    VkPhysicalDevice,
-    VkFormat,
-    VkFormatProperties2*)
-{
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceImageFormatProperties2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceImageFormatInfo2*,
-    VkImageFormatProperties2*)
-{
-    VkResult on_vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
-}
-void VkEventHandler::on_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
-    void*,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkQueueFamilyProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceMemoryProperties2KHR(
-    void*,
-    VkPhysicalDevice,
-    VkPhysicalDeviceMemoryProperties2*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceSparseImageFormatInfo2*,
-    uint32_t*,
-    VkSparseImageFormatProperties2*)
-{
-}
-#endif
-#ifdef VK_KHR_device_group
-void VkEventHandler::on_vkGetDeviceGroupPeerMemoryFeaturesKHR(
-    void*,
-    VkDevice,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    VkPeerMemoryFeatureFlags*)
-{
-}
-void VkEventHandler::on_vkCmdSetDeviceMaskKHR(
-    void*,
-    VkCommandBuffer,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDispatchBaseKHR(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t,
-    uint32_t)
-{
-}
-#endif
-#ifdef VK_KHR_shader_draw_parameters
-#endif
-#ifdef VK_KHR_maintenance1
-void VkEventHandler::on_vkTrimCommandPoolKHR(
-    void*,
-    VkDevice,
-    VkCommandPool,
-    VkCommandPoolTrimFlags)
-{
-}
-#endif
-#ifdef VK_KHR_device_group_creation
-VkResult VkEventHandler::on_vkEnumeratePhysicalDeviceGroupsKHR(
-    void*,
-    VkResult,
-    VkInstance,
-    uint32_t*,
-    VkPhysicalDeviceGroupProperties*)
-{
-    VkResult on_vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
-    return on_vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_external_memory_capabilities
-void VkEventHandler::on_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalBufferInfo*,
-    VkExternalBufferProperties*)
-{
-}
-#endif
-#ifdef VK_KHR_external_memory
-#endif
-#ifdef VK_KHR_external_memory_win32
-VkResult VkEventHandler::on_vkGetMemoryWin32HandleKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkMemoryGetWin32HandleInfoKHR*,
-    HANDLE*)
-{
-    VkResult on_vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryWin32HandleKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetMemoryWin32HandlePropertiesKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkExternalMemoryHandleTypeFlagBits,
-    HANDLE,
-    VkMemoryWin32HandlePropertiesKHR*)
-{
-    VkResult on_vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_external_memory_fd
-VkResult VkEventHandler::on_vkGetMemoryFdKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkMemoryGetFdInfoKHR*,
-    int*)
-{
-    VkResult on_vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryFdKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetMemoryFdPropertiesKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkExternalMemoryHandleTypeFlagBits,
-    int,
-    VkMemoryFdPropertiesKHR*)
-{
-    VkResult on_vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryFdPropertiesKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_win32_keyed_mutex
-#endif
-#ifdef VK_KHR_external_semaphore_capabilities
-void VkEventHandler::on_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalSemaphoreInfo*,
-    VkExternalSemaphoreProperties*)
-{
-}
-#endif
-#ifdef VK_KHR_external_semaphore
-#endif
-#ifdef VK_KHR_external_semaphore_win32
-VkResult VkEventHandler::on_vkImportSemaphoreWin32HandleKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImportSemaphoreWin32HandleInfoKHR*)
-{
-    VkResult on_vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
-    return on_vkImportSemaphoreWin32HandleKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetSemaphoreWin32HandleKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSemaphoreGetWin32HandleInfoKHR*,
-    HANDLE*)
-{
-    VkResult on_vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
-    return on_vkGetSemaphoreWin32HandleKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_external_semaphore_fd
-VkResult VkEventHandler::on_vkImportSemaphoreFdKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImportSemaphoreFdInfoKHR*)
-{
-    VkResult on_vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
-    return on_vkImportSemaphoreFdKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetSemaphoreFdKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSemaphoreGetFdInfoKHR*,
-    int*)
-{
-    VkResult on_vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
-    return on_vkGetSemaphoreFdKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_push_descriptor
-void VkEventHandler::on_vkCmdPushDescriptorSetKHR(
-    void*,
-    VkCommandBuffer,
-    VkPipelineBindPoint,
-    VkPipelineLayout,
-    uint32_t,
-    uint32_t,
-    const VkWriteDescriptorSet*)
-{
-}
-void VkEventHandler::on_vkCmdPushDescriptorSetWithTemplateKHR(
-    void*,
-    VkCommandBuffer,
-    VkDescriptorUpdateTemplate,
-    VkPipelineLayout,
-    uint32_t,
-    const void*)
-{
-}
-#endif
-#ifdef VK_KHR_16bit_storage
-#endif
-#ifdef VK_KHR_incremental_present
-#endif
-#ifdef VK_KHR_descriptor_update_template
-VkResult VkEventHandler::on_vkCreateDescriptorUpdateTemplateKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDescriptorUpdateTemplateCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkDescriptorUpdateTemplate*)
-{
-    VkResult on_vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDescriptorUpdateTemplateKHR(
-    void*,
-    VkDevice,
-    VkDescriptorUpdateTemplate,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkUpdateDescriptorSetWithTemplateKHR(
-    void*,
-    VkDevice,
-    VkDescriptorSet,
-    VkDescriptorUpdateTemplate,
-    const void*)
-{
-}
-#endif
-#ifdef VK_KHR_create_renderpass2
-VkResult VkEventHandler::on_vkCreateRenderPass2KHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkRenderPassCreateInfo2KHR*,
-    const VkAllocationCallbacks*,
-    VkRenderPass*)
-{
-    VkResult on_vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
-    return on_vkCreateRenderPass2KHR_VkResult_return;
-}
-void VkEventHandler::on_vkCmdBeginRenderPass2KHR(
-    void*,
-    VkCommandBuffer,
-    const VkRenderPassBeginInfo*,
-    const VkSubpassBeginInfoKHR*)
-{
-}
-void VkEventHandler::on_vkCmdNextSubpass2KHR(
-    void*,
-    VkCommandBuffer,
-    const VkSubpassBeginInfoKHR*,
-    const VkSubpassEndInfoKHR*)
-{
-}
-void VkEventHandler::on_vkCmdEndRenderPass2KHR(
-    void*,
-    VkCommandBuffer,
-    const VkSubpassEndInfoKHR*)
-{
-}
-#endif
-#ifdef VK_KHR_shared_presentable_image
-VkResult VkEventHandler::on_vkGetSwapchainStatusKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR)
-{
-    VkResult on_vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
-    return on_vkGetSwapchainStatusKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_external_fence_capabilities
-void VkEventHandler::on_vkGetPhysicalDeviceExternalFencePropertiesKHR(
-    void*,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceExternalFenceInfo*,
-    VkExternalFenceProperties*)
-{
-}
-#endif
-#ifdef VK_KHR_external_fence
-#endif
-#ifdef VK_KHR_external_fence_win32
-VkResult VkEventHandler::on_vkImportFenceWin32HandleKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImportFenceWin32HandleInfoKHR*)
-{
-    VkResult on_vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
-    return on_vkImportFenceWin32HandleKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetFenceWin32HandleKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkFenceGetWin32HandleInfoKHR*,
-    HANDLE*)
-{
-    VkResult on_vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
-    return on_vkGetFenceWin32HandleKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_external_fence_fd
-VkResult VkEventHandler::on_vkImportFenceFdKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkImportFenceFdInfoKHR*)
-{
-    VkResult on_vkImportFenceFdKHR_VkResult_return = (VkResult)0;
-    return on_vkImportFenceFdKHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetFenceFdKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkFenceGetFdInfoKHR*,
-    int*)
-{
-    VkResult on_vkGetFenceFdKHR_VkResult_return = (VkResult)0;
-    return on_vkGetFenceFdKHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_maintenance2
-#endif
-#ifdef VK_KHR_get_surface_capabilities2
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceSurfaceInfo2KHR*,
-    VkSurfaceCapabilities2KHR*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceFormats2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkPhysicalDeviceSurfaceInfo2KHR*,
-    uint32_t*,
-    VkSurfaceFormat2KHR*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_variable_pointers
-#endif
-#ifdef VK_KHR_get_display_properties2
-VkResult VkEventHandler::on_vkGetPhysicalDeviceDisplayProperties2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkDisplayProperties2KHR*)
-{
-    VkResult on_vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    uint32_t*,
-    VkDisplayPlaneProperties2KHR*)
-{
-    VkResult on_vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDisplayModeProperties2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkDisplayKHR,
-    uint32_t*,
-    VkDisplayModeProperties2KHR*)
-{
-    VkResult on_vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetDisplayModeProperties2KHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetDisplayPlaneCapabilities2KHR(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    const VkDisplayPlaneInfo2KHR*,
-    VkDisplayPlaneCapabilities2KHR*)
-{
-    VkResult on_vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
-    return on_vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_dedicated_allocation
-#endif
-#ifdef VK_KHR_storage_buffer_storage_class
-#endif
-#ifdef VK_KHR_relaxed_block_layout
-#endif
-#ifdef VK_KHR_get_memory_requirements2
-void VkEventHandler::on_vkGetImageMemoryRequirements2KHR(
-    void*,
-    VkDevice,
-    const VkImageMemoryRequirementsInfo2*,
-    VkMemoryRequirements2*)
-{
-}
-void VkEventHandler::on_vkGetBufferMemoryRequirements2KHR(
-    void*,
-    VkDevice,
-    const VkBufferMemoryRequirementsInfo2*,
-    VkMemoryRequirements2*)
-{
-}
-void VkEventHandler::on_vkGetImageSparseMemoryRequirements2KHR(
-    void*,
-    VkDevice,
-    const VkImageSparseMemoryRequirementsInfo2*,
-    uint32_t*,
-    VkSparseImageMemoryRequirements2*)
-{
-}
-#endif
-#ifdef VK_KHR_image_format_list
-#endif
-#ifdef VK_KHR_sampler_ycbcr_conversion
-VkResult VkEventHandler::on_vkCreateSamplerYcbcrConversionKHR(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkSamplerYcbcrConversionCreateInfo*,
-    const VkAllocationCallbacks*,
-    VkSamplerYcbcrConversion*)
-{
-    VkResult on_vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
-    return on_vkCreateSamplerYcbcrConversionKHR_VkResult_return;
-}
-void VkEventHandler::on_vkDestroySamplerYcbcrConversionKHR(
-    void*,
-    VkDevice,
-    VkSamplerYcbcrConversion,
-    const VkAllocationCallbacks*)
-{
-}
-#endif
-#ifdef VK_KHR_bind_memory2
-VkResult VkEventHandler::on_vkBindBufferMemory2KHR(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkBindBufferMemoryInfo*)
-{
-    VkResult on_vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
-    return on_vkBindBufferMemory2KHR_VkResult_return;
-}
-VkResult VkEventHandler::on_vkBindImageMemory2KHR(
-    void*,
-    VkResult,
-    VkDevice,
-    uint32_t,
-    const VkBindImageMemoryInfo*)
-{
-    VkResult on_vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
-    return on_vkBindImageMemory2KHR_VkResult_return;
-}
-#endif
-#ifdef VK_KHR_maintenance3
-void VkEventHandler::on_vkGetDescriptorSetLayoutSupportKHR(
-    void*,
-    VkDevice,
-    const VkDescriptorSetLayoutCreateInfo*,
-    VkDescriptorSetLayoutSupport*)
-{
-}
-#endif
-#ifdef VK_KHR_draw_indirect_count
-void VkEventHandler::on_vkCmdDrawIndirectCountKHR(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDrawIndexedIndirectCountKHR(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-#endif
-#ifdef VK_KHR_8bit_storage
-#endif
-#ifdef VK_ANDROID_native_buffer
-VkResult VkEventHandler::on_vkGetSwapchainGrallocUsageANDROID(
-    void*,
-    VkResult,
-    VkDevice,
-    VkFormat,
-    VkImageUsageFlags,
-    int*)
-{
-    VkResult on_vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
-    return on_vkGetSwapchainGrallocUsageANDROID_VkResult_return;
-}
-VkResult VkEventHandler::on_vkAcquireImageANDROID(
-    void*,
-    VkResult,
-    VkDevice,
-    VkImage,
-    int,
-    VkSemaphore,
-    VkFence)
-{
-    VkResult on_vkAcquireImageANDROID_VkResult_return = (VkResult)0;
-    return on_vkAcquireImageANDROID_VkResult_return;
-}
-VkResult VkEventHandler::on_vkQueueSignalReleaseImageANDROID(
-    void*,
-    VkResult,
-    VkQueue,
-    uint32_t,
-    const VkSemaphore*,
-    VkImage,
-    int*)
-{
-    VkResult on_vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
-    return on_vkQueueSignalReleaseImageANDROID_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_debug_report
-VkResult VkEventHandler::on_vkCreateDebugReportCallbackEXT(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkDebugReportCallbackCreateInfoEXT*,
-    const VkAllocationCallbacks*,
-    VkDebugReportCallbackEXT*)
-{
-    VkResult on_vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
-    return on_vkCreateDebugReportCallbackEXT_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDebugReportCallbackEXT(
-    void*,
-    VkInstance,
-    VkDebugReportCallbackEXT,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkDebugReportMessageEXT(
-    void*,
-    VkInstance,
-    VkDebugReportFlagsEXT,
-    VkDebugReportObjectTypeEXT,
-    uint64_t,
-    size_t,
-    int32_t,
-    const char*,
-    const char*)
-{
-}
-#endif
-#ifdef VK_NV_glsl_shader
-#endif
-#ifdef VK_EXT_depth_range_unrestricted
-#endif
-#ifdef VK_IMG_filter_cubic
-#endif
-#ifdef VK_AMD_rasterization_order
-#endif
-#ifdef VK_AMD_shader_trinary_minmax
-#endif
-#ifdef VK_AMD_shader_explicit_vertex_parameter
-#endif
-#ifdef VK_EXT_debug_marker
-VkResult VkEventHandler::on_vkDebugMarkerSetObjectTagEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDebugMarkerObjectTagInfoEXT*)
-{
-    VkResult on_vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
-    return on_vkDebugMarkerSetObjectTagEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkDebugMarkerSetObjectNameEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDebugMarkerObjectNameInfoEXT*)
-{
-    VkResult on_vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
-    return on_vkDebugMarkerSetObjectNameEXT_VkResult_return;
-}
-void VkEventHandler::on_vkCmdDebugMarkerBeginEXT(
-    void*,
-    VkCommandBuffer,
-    const VkDebugMarkerMarkerInfoEXT*)
-{
-}
-void VkEventHandler::on_vkCmdDebugMarkerEndEXT(
-    void*,
-    VkCommandBuffer)
-{
-}
-void VkEventHandler::on_vkCmdDebugMarkerInsertEXT(
-    void*,
-    VkCommandBuffer,
-    const VkDebugMarkerMarkerInfoEXT*)
-{
-}
-#endif
-#ifdef VK_AMD_gcn_shader
-#endif
-#ifdef VK_NV_dedicated_allocation
-#endif
-#ifdef VK_AMD_draw_indirect_count
-void VkEventHandler::on_vkCmdDrawIndirectCountAMD(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-void VkEventHandler::on_vkCmdDrawIndexedIndirectCountAMD(
-    void*,
-    VkCommandBuffer,
-    VkBuffer,
-    VkDeviceSize,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t,
-    uint32_t)
-{
-}
-#endif
-#ifdef VK_AMD_negative_viewport_height
-#endif
-#ifdef VK_AMD_gpu_shader_half_float
-#endif
-#ifdef VK_AMD_shader_ballot
-#endif
-#ifdef VK_AMD_texture_gather_bias_lod
-#endif
-#ifdef VK_AMD_shader_info
-VkResult VkEventHandler::on_vkGetShaderInfoAMD(
-    void*,
-    VkResult,
-    VkDevice,
-    VkPipeline,
-    VkShaderStageFlagBits,
-    VkShaderInfoTypeAMD,
-    size_t*,
-    void*)
-{
-    VkResult on_vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
-    return on_vkGetShaderInfoAMD_VkResult_return;
-}
-#endif
-#ifdef VK_AMD_shader_image_load_store_lod
-#endif
-#ifdef VK_IMG_format_pvrtc
-#endif
-#ifdef VK_NV_external_memory_capabilities
-VkResult VkEventHandler::on_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkFormat,
-    VkImageType,
-    VkImageTiling,
-    VkImageUsageFlags,
-    VkImageCreateFlags,
-    VkExternalMemoryHandleTypeFlagsNV,
-    VkExternalImageFormatPropertiesNV*)
-{
-    VkResult on_vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
-}
-#endif
-#ifdef VK_NV_external_memory
-#endif
-#ifdef VK_NV_external_memory_win32
-VkResult VkEventHandler::on_vkGetMemoryWin32HandleNV(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDeviceMemory,
-    VkExternalMemoryHandleTypeFlagsNV,
-    HANDLE*)
-{
-    VkResult on_vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryWin32HandleNV_VkResult_return;
-}
-#endif
-#ifdef VK_NV_win32_keyed_mutex
-#endif
-#ifdef VK_EXT_validation_flags
-#endif
-#ifdef VK_NN_vi_surface
-VkResult VkEventHandler::on_vkCreateViSurfaceNN(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkViSurfaceCreateInfoNN*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
-    return on_vkCreateViSurfaceNN_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_shader_subgroup_ballot
-#endif
-#ifdef VK_EXT_shader_subgroup_vote
-#endif
-#ifdef VK_EXT_conditional_rendering
-void VkEventHandler::on_vkCmdBeginConditionalRenderingEXT(
-    void*,
-    VkCommandBuffer,
-    const VkConditionalRenderingBeginInfoEXT*)
-{
-}
-void VkEventHandler::on_vkCmdEndConditionalRenderingEXT(
-    void*,
-    VkCommandBuffer)
-{
-}
-#endif
-#ifdef VK_NVX_device_generated_commands
-void VkEventHandler::on_vkCmdProcessCommandsNVX(
-    void*,
-    VkCommandBuffer,
-    const VkCmdProcessCommandsInfoNVX*)
-{
-}
-void VkEventHandler::on_vkCmdReserveSpaceForCommandsNVX(
-    void*,
-    VkCommandBuffer,
-    const VkCmdReserveSpaceForCommandsInfoNVX*)
-{
-}
-VkResult VkEventHandler::on_vkCreateIndirectCommandsLayoutNVX(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkIndirectCommandsLayoutCreateInfoNVX*,
-    const VkAllocationCallbacks*,
-    VkIndirectCommandsLayoutNVX*)
-{
-    VkResult on_vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
-    return on_vkCreateIndirectCommandsLayoutNVX_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyIndirectCommandsLayoutNVX(
-    void*,
-    VkDevice,
-    VkIndirectCommandsLayoutNVX,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkCreateObjectTableNVX(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkObjectTableCreateInfoNVX*,
-    const VkAllocationCallbacks*,
-    VkObjectTableNVX*)
-{
-    VkResult on_vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
-    return on_vkCreateObjectTableNVX_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyObjectTableNVX(
-    void*,
-    VkDevice,
-    VkObjectTableNVX,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkRegisterObjectsNVX(
-    void*,
-    VkResult,
-    VkDevice,
-    VkObjectTableNVX,
-    uint32_t,
-    const VkObjectTableEntryNVX* const*,
-    const uint32_t*)
-{
-    VkResult on_vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
-    return on_vkRegisterObjectsNVX_VkResult_return;
-}
-VkResult VkEventHandler::on_vkUnregisterObjectsNVX(
-    void*,
-    VkResult,
-    VkDevice,
-    VkObjectTableNVX,
-    uint32_t,
-    const VkObjectEntryTypeNVX*,
-    const uint32_t*)
-{
-    VkResult on_vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
-    return on_vkUnregisterObjectsNVX_VkResult_return;
-}
-void VkEventHandler::on_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    void*,
-    VkPhysicalDevice,
-    VkDeviceGeneratedCommandsFeaturesNVX*,
-    VkDeviceGeneratedCommandsLimitsNVX*)
-{
-}
-#endif
-#ifdef VK_NV_clip_space_w_scaling
-void VkEventHandler::on_vkCmdSetViewportWScalingNV(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    const VkViewportWScalingNV*)
-{
-}
-#endif
-#ifdef VK_EXT_direct_mode_display
-VkResult VkEventHandler::on_vkReleaseDisplayEXT(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkDisplayKHR)
-{
-    VkResult on_vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
-    return on_vkReleaseDisplayEXT_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_acquire_xlib_display
-VkResult VkEventHandler::on_vkAcquireXlibDisplayEXT(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    Display*,
-    VkDisplayKHR)
-{
-    VkResult on_vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
-    return on_vkAcquireXlibDisplayEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetRandROutputDisplayEXT(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    Display*,
-    RROutput,
-    VkDisplayKHR*)
-{
-    VkResult on_vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
-    return on_vkGetRandROutputDisplayEXT_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_display_surface_counter
-VkResult VkEventHandler::on_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
-    void*,
-    VkResult,
-    VkPhysicalDevice,
-    VkSurfaceKHR,
-    VkSurfaceCapabilities2EXT*)
-{
-    VkResult on_vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
-    return on_vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_display_control
-VkResult VkEventHandler::on_vkDisplayPowerControlEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDisplayKHR,
-    const VkDisplayPowerInfoEXT*)
-{
-    VkResult on_vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
-    return on_vkDisplayPowerControlEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkRegisterDeviceEventEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDeviceEventInfoEXT*,
-    const VkAllocationCallbacks*,
-    VkFence*)
-{
-    VkResult on_vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
-    return on_vkRegisterDeviceEventEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkRegisterDisplayEventEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDisplayKHR,
-    const VkDisplayEventInfoEXT*,
-    const VkAllocationCallbacks*,
-    VkFence*)
-{
-    VkResult on_vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
-    return on_vkRegisterDisplayEventEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetSwapchainCounterEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR,
-    VkSurfaceCounterFlagBitsEXT,
-    uint64_t*)
-{
-    VkResult on_vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
-    return on_vkGetSwapchainCounterEXT_VkResult_return;
-}
-#endif
-#ifdef VK_GOOGLE_display_timing
-VkResult VkEventHandler::on_vkGetRefreshCycleDurationGOOGLE(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR,
-    VkRefreshCycleDurationGOOGLE*)
-{
-    VkResult on_vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
-    return on_vkGetRefreshCycleDurationGOOGLE_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetPastPresentationTimingGOOGLE(
-    void*,
-    VkResult,
-    VkDevice,
-    VkSwapchainKHR,
-    uint32_t*,
-    VkPastPresentationTimingGOOGLE*)
-{
-    VkResult on_vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
-    return on_vkGetPastPresentationTimingGOOGLE_VkResult_return;
-}
-#endif
-#ifdef VK_NV_sample_mask_override_coverage
-#endif
-#ifdef VK_NV_geometry_shader_passthrough
-#endif
-#ifdef VK_NV_viewport_array2
-#endif
-#ifdef VK_NVX_multiview_per_view_attributes
-#endif
-#ifdef VK_NV_viewport_swizzle
-#endif
-#ifdef VK_EXT_discard_rectangles
-void VkEventHandler::on_vkCmdSetDiscardRectangleEXT(
-    void*,
-    VkCommandBuffer,
-    uint32_t,
-    uint32_t,
-    const VkRect2D*)
-{
-}
-#endif
-#ifdef VK_EXT_conservative_rasterization
-#endif
-#ifdef VK_EXT_swapchain_colorspace
-#endif
-#ifdef VK_EXT_hdr_metadata
-void VkEventHandler::on_vkSetHdrMetadataEXT(
-    void*,
-    VkDevice,
-    uint32_t,
-    const VkSwapchainKHR*,
-    const VkHdrMetadataEXT*)
-{
-}
-#endif
-#ifdef VK_MVK_ios_surface
-VkResult VkEventHandler::on_vkCreateIOSSurfaceMVK(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkIOSSurfaceCreateInfoMVK*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
-    return on_vkCreateIOSSurfaceMVK_VkResult_return;
-}
-#endif
-#ifdef VK_MVK_macos_surface
-VkResult VkEventHandler::on_vkCreateMacOSSurfaceMVK(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkMacOSSurfaceCreateInfoMVK*,
-    const VkAllocationCallbacks*,
-    VkSurfaceKHR*)
-{
-    VkResult on_vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
-    return on_vkCreateMacOSSurfaceMVK_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_external_memory_dma_buf
-#endif
-#ifdef VK_EXT_queue_family_foreign
-#endif
-#ifdef VK_EXT_debug_utils
-VkResult VkEventHandler::on_vkSetDebugUtilsObjectNameEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDebugUtilsObjectNameInfoEXT*)
-{
-    VkResult on_vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
-    return on_vkSetDebugUtilsObjectNameEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkSetDebugUtilsObjectTagEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkDebugUtilsObjectTagInfoEXT*)
-{
-    VkResult on_vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
-    return on_vkSetDebugUtilsObjectTagEXT_VkResult_return;
-}
-void VkEventHandler::on_vkQueueBeginDebugUtilsLabelEXT(
-    void*,
-    VkQueue,
-    const VkDebugUtilsLabelEXT*)
-{
-}
-void VkEventHandler::on_vkQueueEndDebugUtilsLabelEXT(
-    void*,
-    VkQueue)
-{
-}
-void VkEventHandler::on_vkQueueInsertDebugUtilsLabelEXT(
-    void*,
-    VkQueue,
-    const VkDebugUtilsLabelEXT*)
-{
-}
-void VkEventHandler::on_vkCmdBeginDebugUtilsLabelEXT(
-    void*,
-    VkCommandBuffer,
-    const VkDebugUtilsLabelEXT*)
-{
-}
-void VkEventHandler::on_vkCmdEndDebugUtilsLabelEXT(
-    void*,
-    VkCommandBuffer)
-{
-}
-void VkEventHandler::on_vkCmdInsertDebugUtilsLabelEXT(
-    void*,
-    VkCommandBuffer,
-    const VkDebugUtilsLabelEXT*)
-{
-}
-VkResult VkEventHandler::on_vkCreateDebugUtilsMessengerEXT(
-    void*,
-    VkResult,
-    VkInstance,
-    const VkDebugUtilsMessengerCreateInfoEXT*,
-    const VkAllocationCallbacks*,
-    VkDebugUtilsMessengerEXT*)
-{
-    VkResult on_vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
-    return on_vkCreateDebugUtilsMessengerEXT_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyDebugUtilsMessengerEXT(
-    void*,
-    VkInstance,
-    VkDebugUtilsMessengerEXT,
-    const VkAllocationCallbacks*)
-{
-}
-void VkEventHandler::on_vkSubmitDebugUtilsMessageEXT(
-    void*,
-    VkInstance,
-    VkDebugUtilsMessageSeverityFlagBitsEXT,
-    VkDebugUtilsMessageTypeFlagsEXT,
-    const VkDebugUtilsMessengerCallbackDataEXT*)
-{
-}
-#endif
-#ifdef VK_ANDROID_external_memory_android_hardware_buffer
-VkResult VkEventHandler::on_vkGetAndroidHardwareBufferPropertiesANDROID(
-    void*,
-    VkResult,
-    VkDevice,
-    const AHardwareBuffer*,
-    VkAndroidHardwareBufferPropertiesANDROID*)
-{
-    VkResult on_vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
-    return on_vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetMemoryAndroidHardwareBufferANDROID(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkMemoryGetAndroidHardwareBufferInfoANDROID*,
-    AHardwareBuffer**)
-{
-    VkResult on_vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_sampler_filter_minmax
-#endif
-#ifdef VK_AMD_gpu_shader_int16
-#endif
-#ifdef VK_AMD_mixed_attachment_samples
-#endif
-#ifdef VK_AMD_shader_fragment_mask
-#endif
-#ifdef VK_EXT_shader_stencil_export
-#endif
-#ifdef VK_EXT_sample_locations
-void VkEventHandler::on_vkCmdSetSampleLocationsEXT(
-    void*,
-    VkCommandBuffer,
-    const VkSampleLocationsInfoEXT*)
-{
-}
-void VkEventHandler::on_vkGetPhysicalDeviceMultisamplePropertiesEXT(
-    void*,
-    VkPhysicalDevice,
-    VkSampleCountFlagBits,
-    VkMultisamplePropertiesEXT*)
-{
-}
-#endif
-#ifdef VK_EXT_blend_operation_advanced
-#endif
-#ifdef VK_NV_fragment_coverage_to_color
-#endif
-#ifdef VK_NV_framebuffer_mixed_samples
-#endif
-#ifdef VK_NV_fill_rectangle
-#endif
-#ifdef VK_EXT_post_depth_coverage
-#endif
-#ifdef VK_EXT_validation_cache
-VkResult VkEventHandler::on_vkCreateValidationCacheEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    const VkValidationCacheCreateInfoEXT*,
-    const VkAllocationCallbacks*,
-    VkValidationCacheEXT*)
-{
-    VkResult on_vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
-    return on_vkCreateValidationCacheEXT_VkResult_return;
-}
-void VkEventHandler::on_vkDestroyValidationCacheEXT(
-    void*,
-    VkDevice,
-    VkValidationCacheEXT,
-    const VkAllocationCallbacks*)
-{
-}
-VkResult VkEventHandler::on_vkMergeValidationCachesEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkValidationCacheEXT,
-    uint32_t,
-    const VkValidationCacheEXT*)
-{
-    VkResult on_vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
-    return on_vkMergeValidationCachesEXT_VkResult_return;
-}
-VkResult VkEventHandler::on_vkGetValidationCacheDataEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkValidationCacheEXT,
-    size_t*,
-    void*)
-{
-    VkResult on_vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
-    return on_vkGetValidationCacheDataEXT_VkResult_return;
-}
-#endif
-#ifdef VK_EXT_descriptor_indexing
-#endif
-#ifdef VK_EXT_shader_viewport_index_layer
-#endif
-#ifdef VK_EXT_global_priority
-#endif
-#ifdef VK_EXT_external_memory_host
-VkResult VkEventHandler::on_vkGetMemoryHostPointerPropertiesEXT(
-    void*,
-    VkResult,
-    VkDevice,
-    VkExternalMemoryHandleTypeFlagBits,
-    const void*,
-    VkMemoryHostPointerPropertiesEXT*)
-{
-    VkResult on_vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
-    return on_vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
-}
-#endif
-#ifdef VK_AMD_buffer_marker
-void VkEventHandler::on_vkCmdWriteBufferMarkerAMD(
-    void*,
-    VkCommandBuffer,
-    VkPipelineStageFlagBits,
-    VkBuffer,
-    VkDeviceSize,
-    uint32_t)
-{
-}
-#endif
-#ifdef VK_AMD_shader_core_properties
-#endif
-#ifdef VK_EXT_vertex_attribute_divisor
-#endif
-#ifdef VK_NV_shader_subgroup_partitioned
-#endif
-#ifdef VK_NV_device_diagnostic_checkpoints
-void VkEventHandler::on_vkCmdSetCheckpointNV(
-    void*,
-    VkCommandBuffer,
-    const void*)
-{
-}
-void VkEventHandler::on_vkGetQueueCheckpointDataNV(
-    void*,
-    VkQueue,
-    uint32_t*,
-    VkCheckpointDataNV*)
-{
-}
-#endif
-#ifdef VK_GOOGLE_address_space
-VkResult VkEventHandler::on_vkMapMemoryIntoAddressSpaceGOOGLE(
-    void*,
-    VkResult,
-    VkDevice,
-    VkDeviceMemory,
-    uint64_t*)
-{
-    VkResult on_vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
-    return on_vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
-}
-#endif
-
-} // namespace goldfish_vk
diff --git a/system/vulkan_enc/VkEventHandler.h b/system/vulkan_enc/VkEventHandler.h
deleted file mode 100644
index 49f6d7e..0000000
--- a/system/vulkan_enc/VkEventHandler.h
+++ /dev/null
@@ -1,2226 +0,0 @@
-// Copyright (C) 2018 The Android Open Source Project
-// Copyright (C) 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Autogenerated module VkEventHandler
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
-// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
-// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
-// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
-
-#pragma once
-
-#include <vulkan/vulkan.h>
-
-
-#include "goldfish_vk_private_defs.h"
-
-
-namespace goldfish_vk {
-
-
-class VkEncoder;
-class VkEventHandler {
-public:
-    VkEventHandler();
-    virtual ~VkEventHandler();
-#ifdef VK_VERSION_1_0
-    virtual VkResult on_vkCreateInstance(
-    void* context,
-        VkResult input_result,
-        const VkInstanceCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkInstance* pInstance);
-    virtual void on_vkDestroyInstance(
-    void* context,
-        VkInstance instance,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkEnumeratePhysicalDevices(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        uint32_t* pPhysicalDeviceCount,
-        VkPhysicalDevice* pPhysicalDevices);
-    virtual void on_vkGetPhysicalDeviceFeatures(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceFeatures* pFeatures);
-    virtual void on_vkGetPhysicalDeviceFormatProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkFormatProperties* pFormatProperties);
-    virtual VkResult on_vkGetPhysicalDeviceImageFormatProperties(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkImageType type,
-        VkImageTiling tiling,
-        VkImageUsageFlags usage,
-        VkImageCreateFlags flags,
-        VkImageFormatProperties* pImageFormatProperties);
-    virtual void on_vkGetPhysicalDeviceProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceProperties* pProperties);
-    virtual void on_vkGetPhysicalDeviceQueueFamilyProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pQueueFamilyPropertyCount,
-        VkQueueFamilyProperties* pQueueFamilyProperties);
-    virtual void on_vkGetPhysicalDeviceMemoryProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceMemoryProperties* pMemoryProperties);
-    virtual PFN_vkVoidFunction on_vkGetInstanceProcAddr(
-    void* context,
-        PFN_vkVoidFunction input_result,
-        VkInstance instance,
-        const char* pName);
-    virtual PFN_vkVoidFunction on_vkGetDeviceProcAddr(
-    void* context,
-        PFN_vkVoidFunction input_result,
-        VkDevice device,
-        const char* pName);
-    virtual VkResult on_vkCreateDevice(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkDeviceCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDevice* pDevice);
-    virtual void on_vkDestroyDevice(
-    void* context,
-        VkDevice device,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkEnumerateInstanceExtensionProperties(
-    void* context,
-        VkResult input_result,
-        const char* pLayerName,
-        uint32_t* pPropertyCount,
-        VkExtensionProperties* pProperties);
-    virtual VkResult on_vkEnumerateDeviceExtensionProperties(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const char* pLayerName,
-        uint32_t* pPropertyCount,
-        VkExtensionProperties* pProperties);
-    virtual VkResult on_vkEnumerateInstanceLayerProperties(
-    void* context,
-        VkResult input_result,
-        uint32_t* pPropertyCount,
-        VkLayerProperties* pProperties);
-    virtual VkResult on_vkEnumerateDeviceLayerProperties(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pPropertyCount,
-        VkLayerProperties* pProperties);
-    virtual void on_vkGetDeviceQueue(
-    void* context,
-        VkDevice device,
-        uint32_t queueFamilyIndex,
-        uint32_t queueIndex,
-        VkQueue* pQueue);
-    virtual VkResult on_vkQueueSubmit(
-    void* context,
-        VkResult input_result,
-        VkQueue queue,
-        uint32_t submitCount,
-        const VkSubmitInfo* pSubmits,
-        VkFence fence);
-    virtual VkResult on_vkQueueWaitIdle(
-    void* context,
-        VkResult input_result,
-        VkQueue queue);
-    virtual VkResult on_vkDeviceWaitIdle(
-    void* context,
-        VkResult input_result,
-        VkDevice device);
-    virtual VkResult on_vkAllocateMemory(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkMemoryAllocateInfo* pAllocateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDeviceMemory* pMemory);
-    virtual void on_vkFreeMemory(
-    void* context,
-        VkDevice device,
-        VkDeviceMemory memory,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkMapMemory(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDeviceMemory memory,
-        VkDeviceSize offset,
-        VkDeviceSize size,
-        VkMemoryMapFlags flags,
-        void** ppData);
-    virtual void on_vkUnmapMemory(
-    void* context,
-        VkDevice device,
-        VkDeviceMemory memory);
-    virtual VkResult on_vkFlushMappedMemoryRanges(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t memoryRangeCount,
-        const VkMappedMemoryRange* pMemoryRanges);
-    virtual VkResult on_vkInvalidateMappedMemoryRanges(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t memoryRangeCount,
-        const VkMappedMemoryRange* pMemoryRanges);
-    virtual void on_vkGetDeviceMemoryCommitment(
-    void* context,
-        VkDevice device,
-        VkDeviceMemory memory,
-        VkDeviceSize* pCommittedMemoryInBytes);
-    virtual VkResult on_vkBindBufferMemory(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkBuffer buffer,
-        VkDeviceMemory memory,
-        VkDeviceSize memoryOffset);
-    virtual VkResult on_vkBindImageMemory(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkImage image,
-        VkDeviceMemory memory,
-        VkDeviceSize memoryOffset);
-    virtual void on_vkGetBufferMemoryRequirements(
-    void* context,
-        VkDevice device,
-        VkBuffer buffer,
-        VkMemoryRequirements* pMemoryRequirements);
-    virtual void on_vkGetImageMemoryRequirements(
-    void* context,
-        VkDevice device,
-        VkImage image,
-        VkMemoryRequirements* pMemoryRequirements);
-    virtual void on_vkGetImageSparseMemoryRequirements(
-    void* context,
-        VkDevice device,
-        VkImage image,
-        uint32_t* pSparseMemoryRequirementCount,
-        VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
-    virtual void on_vkGetPhysicalDeviceSparseImageFormatProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkImageType type,
-        VkSampleCountFlagBits samples,
-        VkImageUsageFlags usage,
-        VkImageTiling tiling,
-        uint32_t* pPropertyCount,
-        VkSparseImageFormatProperties* pProperties);
-    virtual VkResult on_vkQueueBindSparse(
-    void* context,
-        VkResult input_result,
-        VkQueue queue,
-        uint32_t bindInfoCount,
-        const VkBindSparseInfo* pBindInfo,
-        VkFence fence);
-    virtual VkResult on_vkCreateFence(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkFenceCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkFence* pFence);
-    virtual void on_vkDestroyFence(
-    void* context,
-        VkDevice device,
-        VkFence fence,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkResetFences(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t fenceCount,
-        const VkFence* pFences);
-    virtual VkResult on_vkGetFenceStatus(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkFence fence);
-    virtual VkResult on_vkWaitForFences(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t fenceCount,
-        const VkFence* pFences,
-        VkBool32 waitAll,
-        uint64_t timeout);
-    virtual VkResult on_vkCreateSemaphore(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSemaphoreCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSemaphore* pSemaphore);
-    virtual void on_vkDestroySemaphore(
-    void* context,
-        VkDevice device,
-        VkSemaphore semaphore,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateEvent(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkEventCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkEvent* pEvent);
-    virtual void on_vkDestroyEvent(
-    void* context,
-        VkDevice device,
-        VkEvent event,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkGetEventStatus(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkEvent event);
-    virtual VkResult on_vkSetEvent(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkEvent event);
-    virtual VkResult on_vkResetEvent(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkEvent event);
-    virtual VkResult on_vkCreateQueryPool(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkQueryPoolCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkQueryPool* pQueryPool);
-    virtual void on_vkDestroyQueryPool(
-    void* context,
-        VkDevice device,
-        VkQueryPool queryPool,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkGetQueryPoolResults(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkQueryPool queryPool,
-        uint32_t firstQuery,
-        uint32_t queryCount,
-        size_t dataSize,
-        void* pData,
-        VkDeviceSize stride,
-        VkQueryResultFlags flags);
-    virtual VkResult on_vkCreateBuffer(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkBufferCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkBuffer* pBuffer);
-    virtual void on_vkDestroyBuffer(
-    void* context,
-        VkDevice device,
-        VkBuffer buffer,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateBufferView(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkBufferViewCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkBufferView* pView);
-    virtual void on_vkDestroyBufferView(
-    void* context,
-        VkDevice device,
-        VkBufferView bufferView,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateImage(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImageCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkImage* pImage);
-    virtual void on_vkDestroyImage(
-    void* context,
-        VkDevice device,
-        VkImage image,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkGetImageSubresourceLayout(
-    void* context,
-        VkDevice device,
-        VkImage image,
-        const VkImageSubresource* pSubresource,
-        VkSubresourceLayout* pLayout);
-    virtual VkResult on_vkCreateImageView(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImageViewCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkImageView* pView);
-    virtual void on_vkDestroyImageView(
-    void* context,
-        VkDevice device,
-        VkImageView imageView,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateShaderModule(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkShaderModuleCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkShaderModule* pShaderModule);
-    virtual void on_vkDestroyShaderModule(
-    void* context,
-        VkDevice device,
-        VkShaderModule shaderModule,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreatePipelineCache(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkPipelineCacheCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkPipelineCache* pPipelineCache);
-    virtual void on_vkDestroyPipelineCache(
-    void* context,
-        VkDevice device,
-        VkPipelineCache pipelineCache,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkGetPipelineCacheData(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkPipelineCache pipelineCache,
-        size_t* pDataSize,
-        void* pData);
-    virtual VkResult on_vkMergePipelineCaches(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkPipelineCache dstCache,
-        uint32_t srcCacheCount,
-        const VkPipelineCache* pSrcCaches);
-    virtual VkResult on_vkCreateGraphicsPipelines(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkPipelineCache pipelineCache,
-        uint32_t createInfoCount,
-        const VkGraphicsPipelineCreateInfo* pCreateInfos,
-        const VkAllocationCallbacks* pAllocator,
-        VkPipeline* pPipelines);
-    virtual VkResult on_vkCreateComputePipelines(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkPipelineCache pipelineCache,
-        uint32_t createInfoCount,
-        const VkComputePipelineCreateInfo* pCreateInfos,
-        const VkAllocationCallbacks* pAllocator,
-        VkPipeline* pPipelines);
-    virtual void on_vkDestroyPipeline(
-    void* context,
-        VkDevice device,
-        VkPipeline pipeline,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreatePipelineLayout(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkPipelineLayoutCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkPipelineLayout* pPipelineLayout);
-    virtual void on_vkDestroyPipelineLayout(
-    void* context,
-        VkDevice device,
-        VkPipelineLayout pipelineLayout,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateSampler(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSamplerCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSampler* pSampler);
-    virtual void on_vkDestroySampler(
-    void* context,
-        VkDevice device,
-        VkSampler sampler,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateDescriptorSetLayout(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDescriptorSetLayout* pSetLayout);
-    virtual void on_vkDestroyDescriptorSetLayout(
-    void* context,
-        VkDevice device,
-        VkDescriptorSetLayout descriptorSetLayout,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateDescriptorPool(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDescriptorPoolCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDescriptorPool* pDescriptorPool);
-    virtual void on_vkDestroyDescriptorPool(
-    void* context,
-        VkDevice device,
-        VkDescriptorPool descriptorPool,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkResetDescriptorPool(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDescriptorPool descriptorPool,
-        VkDescriptorPoolResetFlags flags);
-    virtual VkResult on_vkAllocateDescriptorSets(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDescriptorSetAllocateInfo* pAllocateInfo,
-        VkDescriptorSet* pDescriptorSets);
-    virtual VkResult on_vkFreeDescriptorSets(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDescriptorPool descriptorPool,
-        uint32_t descriptorSetCount,
-        const VkDescriptorSet* pDescriptorSets);
-    virtual void on_vkUpdateDescriptorSets(
-    void* context,
-        VkDevice device,
-        uint32_t descriptorWriteCount,
-        const VkWriteDescriptorSet* pDescriptorWrites,
-        uint32_t descriptorCopyCount,
-        const VkCopyDescriptorSet* pDescriptorCopies);
-    virtual VkResult on_vkCreateFramebuffer(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkFramebufferCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkFramebuffer* pFramebuffer);
-    virtual void on_vkDestroyFramebuffer(
-    void* context,
-        VkDevice device,
-        VkFramebuffer framebuffer,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateRenderPass(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkRenderPassCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkRenderPass* pRenderPass);
-    virtual void on_vkDestroyRenderPass(
-    void* context,
-        VkDevice device,
-        VkRenderPass renderPass,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkGetRenderAreaGranularity(
-    void* context,
-        VkDevice device,
-        VkRenderPass renderPass,
-        VkExtent2D* pGranularity);
-    virtual VkResult on_vkCreateCommandPool(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkCommandPoolCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkCommandPool* pCommandPool);
-    virtual void on_vkDestroyCommandPool(
-    void* context,
-        VkDevice device,
-        VkCommandPool commandPool,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkResetCommandPool(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkCommandPool commandPool,
-        VkCommandPoolResetFlags flags);
-    virtual VkResult on_vkAllocateCommandBuffers(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkCommandBufferAllocateInfo* pAllocateInfo,
-        VkCommandBuffer* pCommandBuffers);
-    virtual void on_vkFreeCommandBuffers(
-    void* context,
-        VkDevice device,
-        VkCommandPool commandPool,
-        uint32_t commandBufferCount,
-        const VkCommandBuffer* pCommandBuffers);
-    virtual VkResult on_vkBeginCommandBuffer(
-    void* context,
-        VkResult input_result,
-        VkCommandBuffer commandBuffer,
-        const VkCommandBufferBeginInfo* pBeginInfo);
-    virtual VkResult on_vkEndCommandBuffer(
-    void* context,
-        VkResult input_result,
-        VkCommandBuffer commandBuffer);
-    virtual VkResult on_vkResetCommandBuffer(
-    void* context,
-        VkResult input_result,
-        VkCommandBuffer commandBuffer,
-        VkCommandBufferResetFlags flags);
-    virtual void on_vkCmdBindPipeline(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineBindPoint pipelineBindPoint,
-        VkPipeline pipeline);
-    virtual void on_vkCmdSetViewport(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t firstViewport,
-        uint32_t viewportCount,
-        const VkViewport* pViewports);
-    virtual void on_vkCmdSetScissor(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t firstScissor,
-        uint32_t scissorCount,
-        const VkRect2D* pScissors);
-    virtual void on_vkCmdSetLineWidth(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        float lineWidth);
-    virtual void on_vkCmdSetDepthBias(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        float depthBiasConstantFactor,
-        float depthBiasClamp,
-        float depthBiasSlopeFactor);
-    virtual void on_vkCmdSetBlendConstants(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const float blendConstants);
-    virtual void on_vkCmdSetDepthBounds(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        float minDepthBounds,
-        float maxDepthBounds);
-    virtual void on_vkCmdSetStencilCompareMask(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkStencilFaceFlags faceMask,
-        uint32_t compareMask);
-    virtual void on_vkCmdSetStencilWriteMask(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkStencilFaceFlags faceMask,
-        uint32_t writeMask);
-    virtual void on_vkCmdSetStencilReference(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkStencilFaceFlags faceMask,
-        uint32_t reference);
-    virtual void on_vkCmdBindDescriptorSets(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineBindPoint pipelineBindPoint,
-        VkPipelineLayout layout,
-        uint32_t firstSet,
-        uint32_t descriptorSetCount,
-        const VkDescriptorSet* pDescriptorSets,
-        uint32_t dynamicOffsetCount,
-        const uint32_t* pDynamicOffsets);
-    virtual void on_vkCmdBindIndexBuffer(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        VkIndexType indexType);
-    virtual void on_vkCmdBindVertexBuffers(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t firstBinding,
-        uint32_t bindingCount,
-        const VkBuffer* pBuffers,
-        const VkDeviceSize* pOffsets);
-    virtual void on_vkCmdDraw(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t vertexCount,
-        uint32_t instanceCount,
-        uint32_t firstVertex,
-        uint32_t firstInstance);
-    virtual void on_vkCmdDrawIndexed(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t indexCount,
-        uint32_t instanceCount,
-        uint32_t firstIndex,
-        int32_t vertexOffset,
-        uint32_t firstInstance);
-    virtual void on_vkCmdDrawIndirect(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        uint32_t drawCount,
-        uint32_t stride);
-    virtual void on_vkCmdDrawIndexedIndirect(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        uint32_t drawCount,
-        uint32_t stride);
-    virtual void on_vkCmdDispatch(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t groupCountX,
-        uint32_t groupCountY,
-        uint32_t groupCountZ);
-    virtual void on_vkCmdDispatchIndirect(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset);
-    virtual void on_vkCmdCopyBuffer(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer srcBuffer,
-        VkBuffer dstBuffer,
-        uint32_t regionCount,
-        const VkBufferCopy* pRegions);
-    virtual void on_vkCmdCopyImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage srcImage,
-        VkImageLayout srcImageLayout,
-        VkImage dstImage,
-        VkImageLayout dstImageLayout,
-        uint32_t regionCount,
-        const VkImageCopy* pRegions);
-    virtual void on_vkCmdBlitImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage srcImage,
-        VkImageLayout srcImageLayout,
-        VkImage dstImage,
-        VkImageLayout dstImageLayout,
-        uint32_t regionCount,
-        const VkImageBlit* pRegions,
-        VkFilter filter);
-    virtual void on_vkCmdCopyBufferToImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer srcBuffer,
-        VkImage dstImage,
-        VkImageLayout dstImageLayout,
-        uint32_t regionCount,
-        const VkBufferImageCopy* pRegions);
-    virtual void on_vkCmdCopyImageToBuffer(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage srcImage,
-        VkImageLayout srcImageLayout,
-        VkBuffer dstBuffer,
-        uint32_t regionCount,
-        const VkBufferImageCopy* pRegions);
-    virtual void on_vkCmdUpdateBuffer(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer dstBuffer,
-        VkDeviceSize dstOffset,
-        VkDeviceSize dataSize,
-        const void* pData);
-    virtual void on_vkCmdFillBuffer(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer dstBuffer,
-        VkDeviceSize dstOffset,
-        VkDeviceSize size,
-        uint32_t data);
-    virtual void on_vkCmdClearColorImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage image,
-        VkImageLayout imageLayout,
-        const VkClearColorValue* pColor,
-        uint32_t rangeCount,
-        const VkImageSubresourceRange* pRanges);
-    virtual void on_vkCmdClearDepthStencilImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage image,
-        VkImageLayout imageLayout,
-        const VkClearDepthStencilValue* pDepthStencil,
-        uint32_t rangeCount,
-        const VkImageSubresourceRange* pRanges);
-    virtual void on_vkCmdClearAttachments(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t attachmentCount,
-        const VkClearAttachment* pAttachments,
-        uint32_t rectCount,
-        const VkClearRect* pRects);
-    virtual void on_vkCmdResolveImage(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkImage srcImage,
-        VkImageLayout srcImageLayout,
-        VkImage dstImage,
-        VkImageLayout dstImageLayout,
-        uint32_t regionCount,
-        const VkImageResolve* pRegions);
-    virtual void on_vkCmdSetEvent(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkEvent event,
-        VkPipelineStageFlags stageMask);
-    virtual void on_vkCmdResetEvent(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkEvent event,
-        VkPipelineStageFlags stageMask);
-    virtual void on_vkCmdWaitEvents(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t eventCount,
-        const VkEvent* pEvents,
-        VkPipelineStageFlags srcStageMask,
-        VkPipelineStageFlags dstStageMask,
-        uint32_t memoryBarrierCount,
-        const VkMemoryBarrier* pMemoryBarriers,
-        uint32_t bufferMemoryBarrierCount,
-        const VkBufferMemoryBarrier* pBufferMemoryBarriers,
-        uint32_t imageMemoryBarrierCount,
-        const VkImageMemoryBarrier* pImageMemoryBarriers);
-    virtual void on_vkCmdPipelineBarrier(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineStageFlags srcStageMask,
-        VkPipelineStageFlags dstStageMask,
-        VkDependencyFlags dependencyFlags,
-        uint32_t memoryBarrierCount,
-        const VkMemoryBarrier* pMemoryBarriers,
-        uint32_t bufferMemoryBarrierCount,
-        const VkBufferMemoryBarrier* pBufferMemoryBarriers,
-        uint32_t imageMemoryBarrierCount,
-        const VkImageMemoryBarrier* pImageMemoryBarriers);
-    virtual void on_vkCmdBeginQuery(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkQueryPool queryPool,
-        uint32_t query,
-        VkQueryControlFlags flags);
-    virtual void on_vkCmdEndQuery(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkQueryPool queryPool,
-        uint32_t query);
-    virtual void on_vkCmdResetQueryPool(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkQueryPool queryPool,
-        uint32_t firstQuery,
-        uint32_t queryCount);
-    virtual void on_vkCmdWriteTimestamp(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineStageFlagBits pipelineStage,
-        VkQueryPool queryPool,
-        uint32_t query);
-    virtual void on_vkCmdCopyQueryPoolResults(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkQueryPool queryPool,
-        uint32_t firstQuery,
-        uint32_t queryCount,
-        VkBuffer dstBuffer,
-        VkDeviceSize dstOffset,
-        VkDeviceSize stride,
-        VkQueryResultFlags flags);
-    virtual void on_vkCmdPushConstants(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineLayout layout,
-        VkShaderStageFlags stageFlags,
-        uint32_t offset,
-        uint32_t size,
-        const void* pValues);
-    virtual void on_vkCmdBeginRenderPass(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkRenderPassBeginInfo* pRenderPassBegin,
-        VkSubpassContents contents);
-    virtual void on_vkCmdNextSubpass(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkSubpassContents contents);
-    virtual void on_vkCmdEndRenderPass(
-    void* context,
-        VkCommandBuffer commandBuffer);
-    virtual void on_vkCmdExecuteCommands(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t commandBufferCount,
-        const VkCommandBuffer* pCommandBuffers);
-#endif
-#ifdef VK_VERSION_1_1
-    virtual VkResult on_vkEnumerateInstanceVersion(
-    void* context,
-        VkResult input_result,
-        uint32_t* pApiVersion);
-    virtual VkResult on_vkBindBufferMemory2(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t bindInfoCount,
-        const VkBindBufferMemoryInfo* pBindInfos);
-    virtual VkResult on_vkBindImageMemory2(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t bindInfoCount,
-        const VkBindImageMemoryInfo* pBindInfos);
-    virtual void on_vkGetDeviceGroupPeerMemoryFeatures(
-    void* context,
-        VkDevice device,
-        uint32_t heapIndex,
-        uint32_t localDeviceIndex,
-        uint32_t remoteDeviceIndex,
-        VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-    virtual void on_vkCmdSetDeviceMask(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t deviceMask);
-    virtual void on_vkCmdDispatchBase(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t baseGroupX,
-        uint32_t baseGroupY,
-        uint32_t baseGroupZ,
-        uint32_t groupCountX,
-        uint32_t groupCountY,
-        uint32_t groupCountZ);
-    virtual VkResult on_vkEnumeratePhysicalDeviceGroups(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        uint32_t* pPhysicalDeviceGroupCount,
-        VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
-    virtual void on_vkGetImageMemoryRequirements2(
-    void* context,
-        VkDevice device,
-        const VkImageMemoryRequirementsInfo2* pInfo,
-        VkMemoryRequirements2* pMemoryRequirements);
-    virtual void on_vkGetBufferMemoryRequirements2(
-    void* context,
-        VkDevice device,
-        const VkBufferMemoryRequirementsInfo2* pInfo,
-        VkMemoryRequirements2* pMemoryRequirements);
-    virtual void on_vkGetImageSparseMemoryRequirements2(
-    void* context,
-        VkDevice device,
-        const VkImageSparseMemoryRequirementsInfo2* pInfo,
-        uint32_t* pSparseMemoryRequirementCount,
-        VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-    virtual void on_vkGetPhysicalDeviceFeatures2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceFeatures2* pFeatures);
-    virtual void on_vkGetPhysicalDeviceProperties2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceProperties2* pProperties);
-    virtual void on_vkGetPhysicalDeviceFormatProperties2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkFormatProperties2* pFormatProperties);
-    virtual VkResult on_vkGetPhysicalDeviceImageFormatProperties2(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
-        VkImageFormatProperties2* pImageFormatProperties);
-    virtual void on_vkGetPhysicalDeviceQueueFamilyProperties2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pQueueFamilyPropertyCount,
-        VkQueueFamilyProperties2* pQueueFamilyProperties);
-    virtual void on_vkGetPhysicalDeviceMemoryProperties2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
-    virtual void on_vkGetPhysicalDeviceSparseImageFormatProperties2(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
-        uint32_t* pPropertyCount,
-        VkSparseImageFormatProperties2* pProperties);
-    virtual void on_vkTrimCommandPool(
-    void* context,
-        VkDevice device,
-        VkCommandPool commandPool,
-        VkCommandPoolTrimFlags flags);
-    virtual void on_vkGetDeviceQueue2(
-    void* context,
-        VkDevice device,
-        const VkDeviceQueueInfo2* pQueueInfo,
-        VkQueue* pQueue);
-    virtual VkResult on_vkCreateSamplerYcbcrConversion(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSamplerYcbcrConversion* pYcbcrConversion);
-    virtual void on_vkDestroySamplerYcbcrConversion(
-    void* context,
-        VkDevice device,
-        VkSamplerYcbcrConversion ycbcrConversion,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateDescriptorUpdateTemplate(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
-    virtual void on_vkDestroyDescriptorUpdateTemplate(
-    void* context,
-        VkDevice device,
-        VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkUpdateDescriptorSetWithTemplate(
-    void* context,
-        VkDevice device,
-        VkDescriptorSet descriptorSet,
-        VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-        const void* pData);
-    virtual void on_vkGetPhysicalDeviceExternalBufferProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
-        VkExternalBufferProperties* pExternalBufferProperties);
-    virtual void on_vkGetPhysicalDeviceExternalFenceProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
-        VkExternalFenceProperties* pExternalFenceProperties);
-    virtual void on_vkGetPhysicalDeviceExternalSemaphoreProperties(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
-        VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-    virtual void on_vkGetDescriptorSetLayoutSupport(
-    void* context,
-        VkDevice device,
-        const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
-        VkDescriptorSetLayoutSupport* pSupport);
-#endif
-#ifdef VK_KHR_surface
-    virtual void on_vkDestroySurfaceKHR(
-    void* context,
-        VkInstance instance,
-        VkSurfaceKHR surface,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceSupportKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        VkSurfaceKHR surface,
-        VkBool32* pSupported);
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkSurfaceKHR surface,
-        VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceFormatsKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkSurfaceKHR surface,
-        uint32_t* pSurfaceFormatCount,
-        VkSurfaceFormatKHR* pSurfaceFormats);
-    virtual VkResult on_vkGetPhysicalDeviceSurfacePresentModesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkSurfaceKHR surface,
-        uint32_t* pPresentModeCount,
-        VkPresentModeKHR* pPresentModes);
-#endif
-#ifdef VK_KHR_swapchain
-    virtual VkResult on_vkCreateSwapchainKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSwapchainCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSwapchainKHR* pSwapchain);
-    virtual void on_vkDestroySwapchainKHR(
-    void* context,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkGetSwapchainImagesKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        uint32_t* pSwapchainImageCount,
-        VkImage* pSwapchainImages);
-    virtual VkResult on_vkAcquireNextImageKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        uint64_t timeout,
-        VkSemaphore semaphore,
-        VkFence fence,
-        uint32_t* pImageIndex);
-    virtual VkResult on_vkQueuePresentKHR(
-    void* context,
-        VkResult input_result,
-        VkQueue queue,
-        const VkPresentInfoKHR* pPresentInfo);
-    virtual VkResult on_vkGetDeviceGroupPresentCapabilitiesKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
-    virtual VkResult on_vkGetDeviceGroupSurfacePresentModesKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSurfaceKHR surface,
-        VkDeviceGroupPresentModeFlagsKHR* pModes);
-    virtual VkResult on_vkGetPhysicalDevicePresentRectanglesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkSurfaceKHR surface,
-        uint32_t* pRectCount,
-        VkRect2D* pRects);
-    virtual VkResult on_vkAcquireNextImage2KHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkAcquireNextImageInfoKHR* pAcquireInfo,
-        uint32_t* pImageIndex);
-#endif
-#ifdef VK_KHR_display
-    virtual VkResult on_vkGetPhysicalDeviceDisplayPropertiesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pPropertyCount,
-        VkDisplayPropertiesKHR* pProperties);
-    virtual VkResult on_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pPropertyCount,
-        VkDisplayPlanePropertiesKHR* pProperties);
-    virtual VkResult on_vkGetDisplayPlaneSupportedDisplaysKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t planeIndex,
-        uint32_t* pDisplayCount,
-        VkDisplayKHR* pDisplays);
-    virtual VkResult on_vkGetDisplayModePropertiesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkDisplayKHR display,
-        uint32_t* pPropertyCount,
-        VkDisplayModePropertiesKHR* pProperties);
-    virtual VkResult on_vkCreateDisplayModeKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkDisplayKHR display,
-        const VkDisplayModeCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDisplayModeKHR* pMode);
-    virtual VkResult on_vkGetDisplayPlaneCapabilitiesKHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkDisplayModeKHR mode,
-        uint32_t planeIndex,
-        VkDisplayPlaneCapabilitiesKHR* pCapabilities);
-    virtual VkResult on_vkCreateDisplayPlaneSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-#endif
-#ifdef VK_KHR_display_swapchain
-    virtual VkResult on_vkCreateSharedSwapchainsKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t swapchainCount,
-        const VkSwapchainCreateInfoKHR* pCreateInfos,
-        const VkAllocationCallbacks* pAllocator,
-        VkSwapchainKHR* pSwapchains);
-#endif
-#ifdef VK_KHR_xlib_surface
-    virtual VkResult on_vkCreateXlibSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-    virtual VkBool32 on_vkGetPhysicalDeviceXlibPresentationSupportKHR(
-    void* context,
-        VkBool32 input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        Display* dpy,
-        VisualID visualID);
-#endif
-#ifdef VK_KHR_xcb_surface
-    virtual VkResult on_vkCreateXcbSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-    virtual VkBool32 on_vkGetPhysicalDeviceXcbPresentationSupportKHR(
-    void* context,
-        VkBool32 input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        xcb_connection_t* connection,
-        xcb_visualid_t visual_id);
-#endif
-#ifdef VK_KHR_wayland_surface
-    virtual VkResult on_vkCreateWaylandSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-    virtual VkBool32 on_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
-    void* context,
-        VkBool32 input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        wl_display* display);
-#endif
-#ifdef VK_KHR_mir_surface
-    virtual VkResult on_vkCreateMirSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkMirSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-    virtual VkBool32 on_vkGetPhysicalDeviceMirPresentationSupportKHR(
-    void* context,
-        VkBool32 input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        MirConnection* connection);
-#endif
-#ifdef VK_KHR_android_surface
-    virtual VkResult on_vkCreateAndroidSurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-#endif
-#ifdef VK_KHR_win32_surface
-    virtual VkResult on_vkCreateWin32SurfaceKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-    virtual VkBool32 on_vkGetPhysicalDeviceWin32PresentationSupportKHR(
-    void* context,
-        VkBool32 input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex);
-#endif
-#ifdef VK_KHR_sampler_mirror_clamp_to_edge
-#endif
-#ifdef VK_KHR_multiview
-#endif
-#ifdef VK_KHR_get_physical_device_properties2
-    virtual void on_vkGetPhysicalDeviceFeatures2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceFeatures2* pFeatures);
-    virtual void on_vkGetPhysicalDeviceProperties2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceProperties2* pProperties);
-    virtual void on_vkGetPhysicalDeviceFormatProperties2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkFormatProperties2* pFormatProperties);
-    virtual VkResult on_vkGetPhysicalDeviceImageFormatProperties2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
-        VkImageFormatProperties2* pImageFormatProperties);
-    virtual void on_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pQueueFamilyPropertyCount,
-        VkQueueFamilyProperties2* pQueueFamilyProperties);
-    virtual void on_vkGetPhysicalDeviceMemoryProperties2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
-    virtual void on_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
-        uint32_t* pPropertyCount,
-        VkSparseImageFormatProperties2* pProperties);
-#endif
-#ifdef VK_KHR_device_group
-    virtual void on_vkGetDeviceGroupPeerMemoryFeaturesKHR(
-    void* context,
-        VkDevice device,
-        uint32_t heapIndex,
-        uint32_t localDeviceIndex,
-        uint32_t remoteDeviceIndex,
-        VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-    virtual void on_vkCmdSetDeviceMaskKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t deviceMask);
-    virtual void on_vkCmdDispatchBaseKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t baseGroupX,
-        uint32_t baseGroupY,
-        uint32_t baseGroupZ,
-        uint32_t groupCountX,
-        uint32_t groupCountY,
-        uint32_t groupCountZ);
-#endif
-#ifdef VK_KHR_shader_draw_parameters
-#endif
-#ifdef VK_KHR_maintenance1
-    virtual void on_vkTrimCommandPoolKHR(
-    void* context,
-        VkDevice device,
-        VkCommandPool commandPool,
-        VkCommandPoolTrimFlags flags);
-#endif
-#ifdef VK_KHR_device_group_creation
-    virtual VkResult on_vkEnumeratePhysicalDeviceGroupsKHR(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        uint32_t* pPhysicalDeviceGroupCount,
-        VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
-#endif
-#ifdef VK_KHR_external_memory_capabilities
-    virtual void on_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
-        VkExternalBufferProperties* pExternalBufferProperties);
-#endif
-#ifdef VK_KHR_external_memory
-#endif
-#ifdef VK_KHR_external_memory_win32
-    virtual VkResult on_vkGetMemoryWin32HandleKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
-        HANDLE* pHandle);
-    virtual VkResult on_vkGetMemoryWin32HandlePropertiesKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkExternalMemoryHandleTypeFlagBits handleType,
-        HANDLE handle,
-        VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
-#endif
-#ifdef VK_KHR_external_memory_fd
-    virtual VkResult on_vkGetMemoryFdKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkMemoryGetFdInfoKHR* pGetFdInfo,
-        int* pFd);
-    virtual VkResult on_vkGetMemoryFdPropertiesKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkExternalMemoryHandleTypeFlagBits handleType,
-        int fd,
-        VkMemoryFdPropertiesKHR* pMemoryFdProperties);
-#endif
-#ifdef VK_KHR_win32_keyed_mutex
-#endif
-#ifdef VK_KHR_external_semaphore_capabilities
-    virtual void on_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
-        VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-#endif
-#ifdef VK_KHR_external_semaphore
-#endif
-#ifdef VK_KHR_external_semaphore_win32
-    virtual VkResult on_vkImportSemaphoreWin32HandleKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
-    virtual VkResult on_vkGetSemaphoreWin32HandleKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
-        HANDLE* pHandle);
-#endif
-#ifdef VK_KHR_external_semaphore_fd
-    virtual VkResult on_vkImportSemaphoreFdKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
-    virtual VkResult on_vkGetSemaphoreFdKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
-        int* pFd);
-#endif
-#ifdef VK_KHR_push_descriptor
-    virtual void on_vkCmdPushDescriptorSetKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineBindPoint pipelineBindPoint,
-        VkPipelineLayout layout,
-        uint32_t set,
-        uint32_t descriptorWriteCount,
-        const VkWriteDescriptorSet* pDescriptorWrites);
-    virtual void on_vkCmdPushDescriptorSetWithTemplateKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-        VkPipelineLayout layout,
-        uint32_t set,
-        const void* pData);
-#endif
-#ifdef VK_KHR_16bit_storage
-#endif
-#ifdef VK_KHR_incremental_present
-#endif
-#ifdef VK_KHR_descriptor_update_template
-    virtual VkResult on_vkCreateDescriptorUpdateTemplateKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
-    virtual void on_vkDestroyDescriptorUpdateTemplateKHR(
-    void* context,
-        VkDevice device,
-        VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkUpdateDescriptorSetWithTemplateKHR(
-    void* context,
-        VkDevice device,
-        VkDescriptorSet descriptorSet,
-        VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-        const void* pData);
-#endif
-#ifdef VK_KHR_create_renderpass2
-    virtual VkResult on_vkCreateRenderPass2KHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkRenderPassCreateInfo2KHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkRenderPass* pRenderPass);
-    virtual void on_vkCmdBeginRenderPass2KHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkRenderPassBeginInfo* pRenderPassBegin,
-        const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
-    virtual void on_vkCmdNextSubpass2KHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
-        const VkSubpassEndInfoKHR* pSubpassEndInfo);
-    virtual void on_vkCmdEndRenderPass2KHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkSubpassEndInfoKHR* pSubpassEndInfo);
-#endif
-#ifdef VK_KHR_shared_presentable_image
-    virtual VkResult on_vkGetSwapchainStatusKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain);
-#endif
-#ifdef VK_KHR_external_fence_capabilities
-    virtual void on_vkGetPhysicalDeviceExternalFencePropertiesKHR(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
-        VkExternalFenceProperties* pExternalFenceProperties);
-#endif
-#ifdef VK_KHR_external_fence
-#endif
-#ifdef VK_KHR_external_fence_win32
-    virtual VkResult on_vkImportFenceWin32HandleKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
-    virtual VkResult on_vkGetFenceWin32HandleKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
-        HANDLE* pHandle);
-#endif
-#ifdef VK_KHR_external_fence_fd
-    virtual VkResult on_vkImportFenceFdKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
-    virtual VkResult on_vkGetFenceFdKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkFenceGetFdInfoKHR* pGetFdInfo,
-        int* pFd);
-#endif
-#ifdef VK_KHR_maintenance2
-#endif
-#ifdef VK_KHR_get_surface_capabilities2
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
-        VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceFormats2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
-        uint32_t* pSurfaceFormatCount,
-        VkSurfaceFormat2KHR* pSurfaceFormats);
-#endif
-#ifdef VK_KHR_variable_pointers
-#endif
-#ifdef VK_KHR_get_display_properties2
-    virtual VkResult on_vkGetPhysicalDeviceDisplayProperties2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pPropertyCount,
-        VkDisplayProperties2KHR* pProperties);
-    virtual VkResult on_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        uint32_t* pPropertyCount,
-        VkDisplayPlaneProperties2KHR* pProperties);
-    virtual VkResult on_vkGetDisplayModeProperties2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkDisplayKHR display,
-        uint32_t* pPropertyCount,
-        VkDisplayModeProperties2KHR* pProperties);
-    virtual VkResult on_vkGetDisplayPlaneCapabilities2KHR(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
-        VkDisplayPlaneCapabilities2KHR* pCapabilities);
-#endif
-#ifdef VK_KHR_dedicated_allocation
-#endif
-#ifdef VK_KHR_storage_buffer_storage_class
-#endif
-#ifdef VK_KHR_relaxed_block_layout
-#endif
-#ifdef VK_KHR_get_memory_requirements2
-    virtual void on_vkGetImageMemoryRequirements2KHR(
-    void* context,
-        VkDevice device,
-        const VkImageMemoryRequirementsInfo2* pInfo,
-        VkMemoryRequirements2* pMemoryRequirements);
-    virtual void on_vkGetBufferMemoryRequirements2KHR(
-    void* context,
-        VkDevice device,
-        const VkBufferMemoryRequirementsInfo2* pInfo,
-        VkMemoryRequirements2* pMemoryRequirements);
-    virtual void on_vkGetImageSparseMemoryRequirements2KHR(
-    void* context,
-        VkDevice device,
-        const VkImageSparseMemoryRequirementsInfo2* pInfo,
-        uint32_t* pSparseMemoryRequirementCount,
-        VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-#endif
-#ifdef VK_KHR_image_format_list
-#endif
-#ifdef VK_KHR_sampler_ycbcr_conversion
-    virtual VkResult on_vkCreateSamplerYcbcrConversionKHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSamplerYcbcrConversion* pYcbcrConversion);
-    virtual void on_vkDestroySamplerYcbcrConversionKHR(
-    void* context,
-        VkDevice device,
-        VkSamplerYcbcrConversion ycbcrConversion,
-        const VkAllocationCallbacks* pAllocator);
-#endif
-#ifdef VK_KHR_bind_memory2
-    virtual VkResult on_vkBindBufferMemory2KHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t bindInfoCount,
-        const VkBindBufferMemoryInfo* pBindInfos);
-    virtual VkResult on_vkBindImageMemory2KHR(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        uint32_t bindInfoCount,
-        const VkBindImageMemoryInfo* pBindInfos);
-#endif
-#ifdef VK_KHR_maintenance3
-    virtual void on_vkGetDescriptorSetLayoutSupportKHR(
-    void* context,
-        VkDevice device,
-        const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
-        VkDescriptorSetLayoutSupport* pSupport);
-#endif
-#ifdef VK_KHR_draw_indirect_count
-    virtual void on_vkCmdDrawIndirectCountKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        VkBuffer countBuffer,
-        VkDeviceSize countBufferOffset,
-        uint32_t maxDrawCount,
-        uint32_t stride);
-    virtual void on_vkCmdDrawIndexedIndirectCountKHR(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        VkBuffer countBuffer,
-        VkDeviceSize countBufferOffset,
-        uint32_t maxDrawCount,
-        uint32_t stride);
-#endif
-#ifdef VK_KHR_8bit_storage
-#endif
-#ifdef VK_ANDROID_native_buffer
-    virtual VkResult on_vkGetSwapchainGrallocUsageANDROID(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkFormat format,
-        VkImageUsageFlags imageUsage,
-        int* grallocUsage);
-    virtual VkResult on_vkAcquireImageANDROID(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkImage image,
-        int nativeFenceFd,
-        VkSemaphore semaphore,
-        VkFence fence);
-    virtual VkResult on_vkQueueSignalReleaseImageANDROID(
-    void* context,
-        VkResult input_result,
-        VkQueue queue,
-        uint32_t waitSemaphoreCount,
-        const VkSemaphore* pWaitSemaphores,
-        VkImage image,
-        int* pNativeFenceFd);
-#endif
-#ifdef VK_EXT_debug_report
-    virtual VkResult on_vkCreateDebugReportCallbackEXT(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDebugReportCallbackEXT* pCallback);
-    virtual void on_vkDestroyDebugReportCallbackEXT(
-    void* context,
-        VkInstance instance,
-        VkDebugReportCallbackEXT callback,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkDebugReportMessageEXT(
-    void* context,
-        VkInstance instance,
-        VkDebugReportFlagsEXT flags,
-        VkDebugReportObjectTypeEXT objectType,
-        uint64_t object,
-        size_t location,
-        int32_t messageCode,
-        const char* pLayerPrefix,
-        const char* pMessage);
-#endif
-#ifdef VK_NV_glsl_shader
-#endif
-#ifdef VK_EXT_depth_range_unrestricted
-#endif
-#ifdef VK_IMG_filter_cubic
-#endif
-#ifdef VK_AMD_rasterization_order
-#endif
-#ifdef VK_AMD_shader_trinary_minmax
-#endif
-#ifdef VK_AMD_shader_explicit_vertex_parameter
-#endif
-#ifdef VK_EXT_debug_marker
-    virtual VkResult on_vkDebugMarkerSetObjectTagEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
-    virtual VkResult on_vkDebugMarkerSetObjectNameEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
-    virtual void on_vkCmdDebugMarkerBeginEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
-    virtual void on_vkCmdDebugMarkerEndEXT(
-    void* context,
-        VkCommandBuffer commandBuffer);
-    virtual void on_vkCmdDebugMarkerInsertEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
-#endif
-#ifdef VK_AMD_gcn_shader
-#endif
-#ifdef VK_NV_dedicated_allocation
-#endif
-#ifdef VK_AMD_draw_indirect_count
-    virtual void on_vkCmdDrawIndirectCountAMD(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        VkBuffer countBuffer,
-        VkDeviceSize countBufferOffset,
-        uint32_t maxDrawCount,
-        uint32_t stride);
-    virtual void on_vkCmdDrawIndexedIndirectCountAMD(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkBuffer buffer,
-        VkDeviceSize offset,
-        VkBuffer countBuffer,
-        VkDeviceSize countBufferOffset,
-        uint32_t maxDrawCount,
-        uint32_t stride);
-#endif
-#ifdef VK_AMD_negative_viewport_height
-#endif
-#ifdef VK_AMD_gpu_shader_half_float
-#endif
-#ifdef VK_AMD_shader_ballot
-#endif
-#ifdef VK_AMD_texture_gather_bias_lod
-#endif
-#ifdef VK_AMD_shader_info
-    virtual VkResult on_vkGetShaderInfoAMD(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkPipeline pipeline,
-        VkShaderStageFlagBits shaderStage,
-        VkShaderInfoTypeAMD infoType,
-        size_t* pInfoSize,
-        void* pInfo);
-#endif
-#ifdef VK_AMD_shader_image_load_store_lod
-#endif
-#ifdef VK_IMG_format_pvrtc
-#endif
-#ifdef VK_NV_external_memory_capabilities
-    virtual VkResult on_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkFormat format,
-        VkImageType type,
-        VkImageTiling tiling,
-        VkImageUsageFlags usage,
-        VkImageCreateFlags flags,
-        VkExternalMemoryHandleTypeFlagsNV externalHandleType,
-        VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
-#endif
-#ifdef VK_NV_external_memory
-#endif
-#ifdef VK_NV_external_memory_win32
-    virtual VkResult on_vkGetMemoryWin32HandleNV(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDeviceMemory memory,
-        VkExternalMemoryHandleTypeFlagsNV handleType,
-        HANDLE* pHandle);
-#endif
-#ifdef VK_NV_win32_keyed_mutex
-#endif
-#ifdef VK_EXT_validation_flags
-#endif
-#ifdef VK_NN_vi_surface
-    virtual VkResult on_vkCreateViSurfaceNN(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkViSurfaceCreateInfoNN* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-#endif
-#ifdef VK_EXT_shader_subgroup_ballot
-#endif
-#ifdef VK_EXT_shader_subgroup_vote
-#endif
-#ifdef VK_EXT_conditional_rendering
-    virtual void on_vkCmdBeginConditionalRenderingEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
-    virtual void on_vkCmdEndConditionalRenderingEXT(
-    void* context,
-        VkCommandBuffer commandBuffer);
-#endif
-#ifdef VK_NVX_device_generated_commands
-    virtual void on_vkCmdProcessCommandsNVX(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
-    virtual void on_vkCmdReserveSpaceForCommandsNVX(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
-    virtual VkResult on_vkCreateIndirectCommandsLayoutNVX(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
-    virtual void on_vkDestroyIndirectCommandsLayoutNVX(
-    void* context,
-        VkDevice device,
-        VkIndirectCommandsLayoutNVX indirectCommandsLayout,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkCreateObjectTableNVX(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkObjectTableCreateInfoNVX* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkObjectTableNVX* pObjectTable);
-    virtual void on_vkDestroyObjectTableNVX(
-    void* context,
-        VkDevice device,
-        VkObjectTableNVX objectTable,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkRegisterObjectsNVX(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkObjectTableNVX objectTable,
-        uint32_t objectCount,
-        const VkObjectTableEntryNVX* const* ppObjectTableEntries,
-        const uint32_t* pObjectIndices);
-    virtual VkResult on_vkUnregisterObjectsNVX(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkObjectTableNVX objectTable,
-        uint32_t objectCount,
-        const VkObjectEntryTypeNVX* pObjectEntryTypes,
-        const uint32_t* pObjectIndices);
-    virtual void on_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
-        VkDeviceGeneratedCommandsLimitsNVX* pLimits);
-#endif
-#ifdef VK_NV_clip_space_w_scaling
-    virtual void on_vkCmdSetViewportWScalingNV(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t firstViewport,
-        uint32_t viewportCount,
-        const VkViewportWScalingNV* pViewportWScalings);
-#endif
-#ifdef VK_EXT_direct_mode_display
-    virtual VkResult on_vkReleaseDisplayEXT(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkDisplayKHR display);
-#endif
-#ifdef VK_EXT_acquire_xlib_display
-    virtual VkResult on_vkAcquireXlibDisplayEXT(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        Display* dpy,
-        VkDisplayKHR display);
-    virtual VkResult on_vkGetRandROutputDisplayEXT(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        Display* dpy,
-        RROutput rrOutput,
-        VkDisplayKHR* pDisplay);
-#endif
-#ifdef VK_EXT_display_surface_counter
-    virtual VkResult on_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
-    void* context,
-        VkResult input_result,
-        VkPhysicalDevice physicalDevice,
-        VkSurfaceKHR surface,
-        VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
-#endif
-#ifdef VK_EXT_display_control
-    virtual VkResult on_vkDisplayPowerControlEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDisplayKHR display,
-        const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
-    virtual VkResult on_vkRegisterDeviceEventEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDeviceEventInfoEXT* pDeviceEventInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkFence* pFence);
-    virtual VkResult on_vkRegisterDisplayEventEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDisplayKHR display,
-        const VkDisplayEventInfoEXT* pDisplayEventInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkFence* pFence);
-    virtual VkResult on_vkGetSwapchainCounterEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        VkSurfaceCounterFlagBitsEXT counter,
-        uint64_t* pCounterValue);
-#endif
-#ifdef VK_GOOGLE_display_timing
-    virtual VkResult on_vkGetRefreshCycleDurationGOOGLE(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
-    virtual VkResult on_vkGetPastPresentationTimingGOOGLE(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkSwapchainKHR swapchain,
-        uint32_t* pPresentationTimingCount,
-        VkPastPresentationTimingGOOGLE* pPresentationTimings);
-#endif
-#ifdef VK_NV_sample_mask_override_coverage
-#endif
-#ifdef VK_NV_geometry_shader_passthrough
-#endif
-#ifdef VK_NV_viewport_array2
-#endif
-#ifdef VK_NVX_multiview_per_view_attributes
-#endif
-#ifdef VK_NV_viewport_swizzle
-#endif
-#ifdef VK_EXT_discard_rectangles
-    virtual void on_vkCmdSetDiscardRectangleEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        uint32_t firstDiscardRectangle,
-        uint32_t discardRectangleCount,
-        const VkRect2D* pDiscardRectangles);
-#endif
-#ifdef VK_EXT_conservative_rasterization
-#endif
-#ifdef VK_EXT_swapchain_colorspace
-#endif
-#ifdef VK_EXT_hdr_metadata
-    virtual void on_vkSetHdrMetadataEXT(
-    void* context,
-        VkDevice device,
-        uint32_t swapchainCount,
-        const VkSwapchainKHR* pSwapchains,
-        const VkHdrMetadataEXT* pMetadata);
-#endif
-#ifdef VK_MVK_ios_surface
-    virtual VkResult on_vkCreateIOSSurfaceMVK(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-#endif
-#ifdef VK_MVK_macos_surface
-    virtual VkResult on_vkCreateMacOSSurfaceMVK(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface);
-#endif
-#ifdef VK_EXT_external_memory_dma_buf
-#endif
-#ifdef VK_EXT_queue_family_foreign
-#endif
-#ifdef VK_EXT_debug_utils
-    virtual VkResult on_vkSetDebugUtilsObjectNameEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
-    virtual VkResult on_vkSetDebugUtilsObjectTagEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
-    virtual void on_vkQueueBeginDebugUtilsLabelEXT(
-    void* context,
-        VkQueue queue,
-        const VkDebugUtilsLabelEXT* pLabelInfo);
-    virtual void on_vkQueueEndDebugUtilsLabelEXT(
-    void* context,
-        VkQueue queue);
-    virtual void on_vkQueueInsertDebugUtilsLabelEXT(
-    void* context,
-        VkQueue queue,
-        const VkDebugUtilsLabelEXT* pLabelInfo);
-    virtual void on_vkCmdBeginDebugUtilsLabelEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkDebugUtilsLabelEXT* pLabelInfo);
-    virtual void on_vkCmdEndDebugUtilsLabelEXT(
-    void* context,
-        VkCommandBuffer commandBuffer);
-    virtual void on_vkCmdInsertDebugUtilsLabelEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkDebugUtilsLabelEXT* pLabelInfo);
-    virtual VkResult on_vkCreateDebugUtilsMessengerEXT(
-    void* context,
-        VkResult input_result,
-        VkInstance instance,
-        const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkDebugUtilsMessengerEXT* pMessenger);
-    virtual void on_vkDestroyDebugUtilsMessengerEXT(
-    void* context,
-        VkInstance instance,
-        VkDebugUtilsMessengerEXT messenger,
-        const VkAllocationCallbacks* pAllocator);
-    virtual void on_vkSubmitDebugUtilsMessageEXT(
-    void* context,
-        VkInstance instance,
-        VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
-        VkDebugUtilsMessageTypeFlagsEXT messageTypes,
-        const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
-#endif
-#ifdef VK_ANDROID_external_memory_android_hardware_buffer
-    virtual VkResult on_vkGetAndroidHardwareBufferPropertiesANDROID(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const AHardwareBuffer* buffer,
-        VkAndroidHardwareBufferPropertiesANDROID* pProperties);
-    virtual VkResult on_vkGetMemoryAndroidHardwareBufferANDROID(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
-        AHardwareBuffer** pBuffer);
-#endif
-#ifdef VK_EXT_sampler_filter_minmax
-#endif
-#ifdef VK_AMD_gpu_shader_int16
-#endif
-#ifdef VK_AMD_mixed_attachment_samples
-#endif
-#ifdef VK_AMD_shader_fragment_mask
-#endif
-#ifdef VK_EXT_shader_stencil_export
-#endif
-#ifdef VK_EXT_sample_locations
-    virtual void on_vkCmdSetSampleLocationsEXT(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
-    virtual void on_vkGetPhysicalDeviceMultisamplePropertiesEXT(
-    void* context,
-        VkPhysicalDevice physicalDevice,
-        VkSampleCountFlagBits samples,
-        VkMultisamplePropertiesEXT* pMultisampleProperties);
-#endif
-#ifdef VK_EXT_blend_operation_advanced
-#endif
-#ifdef VK_NV_fragment_coverage_to_color
-#endif
-#ifdef VK_NV_framebuffer_mixed_samples
-#endif
-#ifdef VK_NV_fill_rectangle
-#endif
-#ifdef VK_EXT_post_depth_coverage
-#endif
-#ifdef VK_EXT_validation_cache
-    virtual VkResult on_vkCreateValidationCacheEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        const VkValidationCacheCreateInfoEXT* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkValidationCacheEXT* pValidationCache);
-    virtual void on_vkDestroyValidationCacheEXT(
-    void* context,
-        VkDevice device,
-        VkValidationCacheEXT validationCache,
-        const VkAllocationCallbacks* pAllocator);
-    virtual VkResult on_vkMergeValidationCachesEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkValidationCacheEXT dstCache,
-        uint32_t srcCacheCount,
-        const VkValidationCacheEXT* pSrcCaches);
-    virtual VkResult on_vkGetValidationCacheDataEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkValidationCacheEXT validationCache,
-        size_t* pDataSize,
-        void* pData);
-#endif
-#ifdef VK_EXT_descriptor_indexing
-#endif
-#ifdef VK_EXT_shader_viewport_index_layer
-#endif
-#ifdef VK_EXT_global_priority
-#endif
-#ifdef VK_EXT_external_memory_host
-    virtual VkResult on_vkGetMemoryHostPointerPropertiesEXT(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkExternalMemoryHandleTypeFlagBits handleType,
-        const void* pHostPointer,
-        VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
-#endif
-#ifdef VK_AMD_buffer_marker
-    virtual void on_vkCmdWriteBufferMarkerAMD(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        VkPipelineStageFlagBits pipelineStage,
-        VkBuffer dstBuffer,
-        VkDeviceSize dstOffset,
-        uint32_t marker);
-#endif
-#ifdef VK_AMD_shader_core_properties
-#endif
-#ifdef VK_EXT_vertex_attribute_divisor
-#endif
-#ifdef VK_NV_shader_subgroup_partitioned
-#endif
-#ifdef VK_NV_device_diagnostic_checkpoints
-    virtual void on_vkCmdSetCheckpointNV(
-    void* context,
-        VkCommandBuffer commandBuffer,
-        const void* pCheckpointMarker);
-    virtual void on_vkGetQueueCheckpointDataNV(
-    void* context,
-        VkQueue queue,
-        uint32_t* pCheckpointDataCount,
-        VkCheckpointDataNV* pCheckpointData);
-#endif
-#ifdef VK_GOOGLE_address_space
-    virtual VkResult on_vkMapMemoryIntoAddressSpaceGOOGLE(
-    void* context,
-        VkResult input_result,
-        VkDevice device,
-        VkDeviceMemory memory,
-        uint64_t* pAddress);
-#endif
-
-};
-
-} // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_transform.cpp b/system/vulkan_enc/goldfish_vk_transform.cpp
index 37efa94..adffc51 100644
--- a/system/vulkan_enc/goldfish_vk_transform.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform.cpp
@@ -31,12 +31,16 @@
 
 namespace goldfish_vk {
 
-void transform_extension_struct(
+void transform_tohost_extension_struct(
+    ResourceTracker* resourceTracker,
+    void* structExtension_out);
+
+void transform_fromhost_extension_struct(
     ResourceTracker* resourceTracker,
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
-void transform_VkApplicationInfo(
+void transform_tohost_VkApplicationInfo(
     ResourceTracker* resourceTracker,
     VkApplicationInfo* toTransform)
 {
@@ -44,11 +48,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkInstanceCreateInfo(
+void transform_fromhost_VkApplicationInfo(
+    ResourceTracker* resourceTracker,
+    VkApplicationInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkInstanceCreateInfo(
     ResourceTracker* resourceTracker,
     VkInstanceCreateInfo* toTransform)
 {
@@ -56,15 +72,31 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pApplicationInfo)
     {
-        transform_VkApplicationInfo(resourceTracker, (VkApplicationInfo*)(toTransform->pApplicationInfo));
+        transform_tohost_VkApplicationInfo(resourceTracker, (VkApplicationInfo*)(toTransform->pApplicationInfo));
     }
 }
 
-void transform_VkAllocationCallbacks(
+void transform_fromhost_VkInstanceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkInstanceCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pApplicationInfo)
+    {
+        transform_fromhost_VkApplicationInfo(resourceTracker, (VkApplicationInfo*)(toTransform->pApplicationInfo));
+    }
+}
+
+void transform_tohost_VkAllocationCallbacks(
     ResourceTracker* resourceTracker,
     VkAllocationCallbacks* toTransform)
 {
@@ -72,7 +104,15 @@
     (void)toTransform;
 }
 
-void transform_VkPhysicalDeviceFeatures(
+void transform_fromhost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceFeatures* toTransform)
 {
@@ -80,7 +120,15 @@
     (void)toTransform;
 }
 
-void transform_VkFormatProperties(
+void transform_fromhost_VkPhysicalDeviceFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkFormatProperties(
     ResourceTracker* resourceTracker,
     VkFormatProperties* toTransform)
 {
@@ -88,7 +136,15 @@
     (void)toTransform;
 }
 
-void transform_VkExtent3D(
+void transform_fromhost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkExtent3D(
     ResourceTracker* resourceTracker,
     VkExtent3D* toTransform)
 {
@@ -96,16 +152,33 @@
     (void)toTransform;
 }
 
-void transform_VkImageFormatProperties(
+void transform_fromhost_VkExtent3D(
+    ResourceTracker* resourceTracker,
+    VkExtent3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkImageFormatProperties* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
 }
 
-void transform_VkPhysicalDeviceLimits(
+void transform_fromhost_VkImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
+}
+
+void transform_tohost_VkPhysicalDeviceLimits(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceLimits* toTransform)
 {
@@ -113,7 +186,15 @@
     (void)toTransform;
 }
 
-void transform_VkPhysicalDeviceSparseProperties(
+void transform_fromhost_VkPhysicalDeviceLimits(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLimits* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceSparseProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseProperties* toTransform)
 {
@@ -121,26 +202,53 @@
     (void)toTransform;
 }
 
-void transform_VkPhysicalDeviceProperties(
+void transform_fromhost_VkPhysicalDeviceSparseProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSparseProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProperties* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkPhysicalDeviceLimits(resourceTracker, (VkPhysicalDeviceLimits*)(&toTransform->limits));
-    transform_VkPhysicalDeviceSparseProperties(resourceTracker, (VkPhysicalDeviceSparseProperties*)(&toTransform->sparseProperties));
+    transform_tohost_VkPhysicalDeviceLimits(resourceTracker, (VkPhysicalDeviceLimits*)(&toTransform->limits));
+    transform_tohost_VkPhysicalDeviceSparseProperties(resourceTracker, (VkPhysicalDeviceSparseProperties*)(&toTransform->sparseProperties));
 }
 
-void transform_VkQueueFamilyProperties(
+void transform_fromhost_VkPhysicalDeviceProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkPhysicalDeviceLimits(resourceTracker, (VkPhysicalDeviceLimits*)(&toTransform->limits));
+    transform_fromhost_VkPhysicalDeviceSparseProperties(resourceTracker, (VkPhysicalDeviceSparseProperties*)(&toTransform->sparseProperties));
+}
+
+void transform_tohost_VkQueueFamilyProperties(
     ResourceTracker* resourceTracker,
     VkQueueFamilyProperties* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->minImageTransferGranularity));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->minImageTransferGranularity));
 }
 
-void transform_VkMemoryType(
+void transform_fromhost_VkQueueFamilyProperties(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->minImageTransferGranularity));
+}
+
+void transform_tohost_VkMemoryType(
     ResourceTracker* resourceTracker,
     VkMemoryType* toTransform)
 {
@@ -148,7 +256,15 @@
     (void)toTransform;
 }
 
-void transform_VkMemoryHeap(
+void transform_fromhost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkMemoryHeap(
     ResourceTracker* resourceTracker,
     VkMemoryHeap* toTransform)
 {
@@ -156,7 +272,15 @@
     (void)toTransform;
 }
 
-void transform_VkPhysicalDeviceMemoryProperties(
+void transform_fromhost_VkMemoryHeap(
+    ResourceTracker* resourceTracker,
+    VkMemoryHeap* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceMemoryProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMemoryProperties* toTransform)
 {
@@ -164,15 +288,31 @@
     (void)toTransform;
     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
     {
-        transform_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
+        transform_tohost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
     }
     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
     {
-        transform_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
+        transform_tohost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
     }
 }
 
-void transform_VkDeviceQueueCreateInfo(
+void transform_fromhost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        transform_fromhost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
+    }
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        transform_fromhost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
+    }
+}
+
+void transform_tohost_VkDeviceQueueCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceQueueCreateInfo* toTransform)
 {
@@ -180,11 +320,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceCreateInfo(
+void transform_fromhost_VkDeviceQueueCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceCreateInfo* toTransform)
 {
@@ -192,22 +344,45 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pQueueCreateInfos)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
         {
-            transform_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+            transform_tohost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
         }
     }
     if (toTransform->pEnabledFeatures)
     {
-        transform_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(toTransform->pEnabledFeatures));
+        transform_tohost_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(toTransform->pEnabledFeatures));
     }
 }
 
-void transform_VkExtensionProperties(
+void transform_fromhost_VkDeviceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pQueueCreateInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
+        {
+            transform_fromhost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+        }
+    }
+    if (toTransform->pEnabledFeatures)
+    {
+        transform_fromhost_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(toTransform->pEnabledFeatures));
+    }
+}
+
+void transform_tohost_VkExtensionProperties(
     ResourceTracker* resourceTracker,
     VkExtensionProperties* toTransform)
 {
@@ -215,7 +390,15 @@
     (void)toTransform;
 }
 
-void transform_VkLayerProperties(
+void transform_fromhost_VkExtensionProperties(
+    ResourceTracker* resourceTracker,
+    VkExtensionProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkLayerProperties(
     ResourceTracker* resourceTracker,
     VkLayerProperties* toTransform)
 {
@@ -223,7 +406,15 @@
     (void)toTransform;
 }
 
-void transform_VkSubmitInfo(
+void transform_fromhost_VkLayerProperties(
+    ResourceTracker* resourceTracker,
+    VkLayerProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSubmitInfo(
     ResourceTracker* resourceTracker,
     VkSubmitInfo* toTransform)
 {
@@ -231,73 +422,147 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryAllocateInfo(
+void transform_fromhost_VkSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryAllocateInfo(
     ResourceTracker* resourceTracker,
     VkMemoryAllocateInfo* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeIndex, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeIndex, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMappedMemoryRange(
+void transform_fromhost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeIndex, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMappedMemoryRange(
     ResourceTracker* resourceTracker,
     VkMappedMemoryRange* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, &toTransform->offset, 1, &toTransform->size, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->offset, 1, &toTransform->size, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryRequirements(
+void transform_fromhost_VkMappedMemoryRange(
+    ResourceTracker* resourceTracker,
+    VkMappedMemoryRange* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->offset, 1, &toTransform->size, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
 }
 
-void transform_VkSparseImageFormatProperties(
+void transform_fromhost_VkMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkMemoryRequirements* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+}
+
+void transform_tohost_VkSparseImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkSparseImageFormatProperties* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageGranularity));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageGranularity));
 }
 
-void transform_VkSparseImageMemoryRequirements(
+void transform_fromhost_VkSparseImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageGranularity));
+}
+
+void transform_tohost_VkSparseImageMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryRequirements* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->formatProperties));
+    transform_tohost_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->formatProperties));
 }
 
-void transform_VkSparseMemoryBind(
+void transform_fromhost_VkSparseImageMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->formatProperties));
+}
+
+void transform_tohost_VkSparseMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseMemoryBind* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
 }
 
-void transform_VkSparseBufferMemoryBindInfo(
+void transform_fromhost_VkSparseMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+}
+
+void transform_tohost_VkSparseBufferMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseBufferMemoryBindInfo* toTransform)
 {
@@ -307,12 +572,27 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
         {
-            transform_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
         }
     }
 }
 
-void transform_VkSparseImageOpaqueMemoryBindInfo(
+void transform_fromhost_VkSparseBufferMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseBufferMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+        {
+            transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+        }
+    }
+}
+
+void transform_tohost_VkSparseImageOpaqueMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseImageOpaqueMemoryBindInfo* toTransform)
 {
@@ -322,12 +602,27 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
         {
-            transform_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
         }
     }
 }
 
-void transform_VkImageSubresource(
+void transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageOpaqueMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+        {
+            transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+        }
+    }
+}
+
+void transform_tohost_VkImageSubresource(
     ResourceTracker* resourceTracker,
     VkImageSubresource* toTransform)
 {
@@ -335,7 +630,15 @@
     (void)toTransform;
 }
 
-void transform_VkOffset3D(
+void transform_fromhost_VkImageSubresource(
+    ResourceTracker* resourceTracker,
+    VkImageSubresource* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkOffset3D(
     ResourceTracker* resourceTracker,
     VkOffset3D* toTransform)
 {
@@ -343,19 +646,39 @@
     (void)toTransform;
 }
 
-void transform_VkSparseImageMemoryBind(
+void transform_fromhost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSparseImageMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryBind* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
-    transform_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    transform_tohost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
 }
 
-void transform_VkSparseImageMemoryBindInfo(
+void transform_fromhost_VkSparseImageMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    transform_fromhost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkSparseImageMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryBindInfo* toTransform)
 {
@@ -365,12 +688,27 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
         {
-            transform_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
+            transform_tohost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
         }
     }
 }
 
-void transform_VkBindSparseInfo(
+void transform_fromhost_VkSparseImageMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+        {
+            transform_fromhost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
+        }
+    }
+}
+
+void transform_tohost_VkBindSparseInfo(
     ResourceTracker* resourceTracker,
     VkBindSparseInfo* toTransform)
 {
@@ -378,32 +716,65 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pBufferBinds)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
         {
-            transform_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
+            transform_tohost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
         }
     }
     if (toTransform->pImageOpaqueBinds)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
         {
-            transform_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
+            transform_tohost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
         }
     }
     if (toTransform->pImageBinds)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
         {
-            transform_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
+            transform_tohost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
         }
     }
 }
 
-void transform_VkFenceCreateInfo(
+void transform_fromhost_VkBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkBindSparseInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pBufferBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
+        {
+            transform_fromhost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
+        }
+    }
+    if (toTransform->pImageOpaqueBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
+        {
+            transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
+        }
+    }
+    if (toTransform->pImageBinds)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
+        {
+            transform_fromhost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
+        }
+    }
+}
+
+void transform_tohost_VkFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkFenceCreateInfo* toTransform)
 {
@@ -411,11 +782,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSemaphoreCreateInfo(
+void transform_fromhost_VkFenceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFenceCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreCreateInfo(
     ResourceTracker* resourceTracker,
     VkSemaphoreCreateInfo* toTransform)
 {
@@ -423,11 +806,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkEventCreateInfo(
+void transform_fromhost_VkSemaphoreCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkEventCreateInfo(
     ResourceTracker* resourceTracker,
     VkEventCreateInfo* toTransform)
 {
@@ -435,11 +830,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkQueryPoolCreateInfo(
+void transform_fromhost_VkEventCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkEventCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueryPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkQueryPoolCreateInfo* toTransform)
 {
@@ -447,11 +854,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBufferCreateInfo(
+void transform_fromhost_VkQueryPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkBufferCreateInfo* toTransform)
 {
@@ -459,11 +878,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBufferViewCreateInfo(
+void transform_fromhost_VkBufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkBufferViewCreateInfo* toTransform)
 {
@@ -471,11 +902,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImageCreateInfo(
+void transform_fromhost_VkBufferViewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferViewCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageCreateInfo* toTransform)
 {
@@ -483,12 +926,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
 }
 
-void transform_VkSubresourceLayout(
+void transform_fromhost_VkImageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkSubresourceLayout(
     ResourceTracker* resourceTracker,
     VkSubresourceLayout* toTransform)
 {
@@ -496,7 +952,15 @@
     (void)toTransform;
 }
 
-void transform_VkComponentMapping(
+void transform_fromhost_VkSubresourceLayout(
+    ResourceTracker* resourceTracker,
+    VkSubresourceLayout* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkComponentMapping(
     ResourceTracker* resourceTracker,
     VkComponentMapping* toTransform)
 {
@@ -504,7 +968,15 @@
     (void)toTransform;
 }
 
-void transform_VkImageSubresourceRange(
+void transform_fromhost_VkComponentMapping(
+    ResourceTracker* resourceTracker,
+    VkComponentMapping* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageSubresourceRange(
     ResourceTracker* resourceTracker,
     VkImageSubresourceRange* toTransform)
 {
@@ -512,7 +984,15 @@
     (void)toTransform;
 }
 
-void transform_VkImageViewCreateInfo(
+void transform_fromhost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewCreateInfo* toTransform)
 {
@@ -520,13 +1000,27 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
-    transform_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+    transform_tohost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
 }
 
-void transform_VkShaderModuleCreateInfo(
+void transform_fromhost_VkImageViewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageViewCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+    transform_fromhost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+}
+
+void transform_tohost_VkShaderModuleCreateInfo(
     ResourceTracker* resourceTracker,
     VkShaderModuleCreateInfo* toTransform)
 {
@@ -534,11 +1028,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineCacheCreateInfo(
+void transform_fromhost_VkShaderModuleCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkShaderModuleCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineCacheCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineCacheCreateInfo* toTransform)
 {
@@ -546,11 +1052,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSpecializationMapEntry(
+void transform_fromhost_VkPipelineCacheCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSpecializationMapEntry(
     ResourceTracker* resourceTracker,
     VkSpecializationMapEntry* toTransform)
 {
@@ -558,7 +1076,15 @@
     (void)toTransform;
 }
 
-void transform_VkSpecializationInfo(
+void transform_fromhost_VkSpecializationMapEntry(
+    ResourceTracker* resourceTracker,
+    VkSpecializationMapEntry* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSpecializationInfo(
     ResourceTracker* resourceTracker,
     VkSpecializationInfo* toTransform)
 {
@@ -568,12 +1094,27 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
         {
-            transform_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+            transform_tohost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
         }
     }
 }
 
-void transform_VkPipelineShaderStageCreateInfo(
+void transform_fromhost_VkSpecializationInfo(
+    ResourceTracker* resourceTracker,
+    VkSpecializationInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pMapEntries)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
+        {
+            transform_fromhost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+        }
+    }
+}
+
+void transform_tohost_VkPipelineShaderStageCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineShaderStageCreateInfo* toTransform)
 {
@@ -581,15 +1122,31 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pSpecializationInfo)
     {
-        transform_VkSpecializationInfo(resourceTracker, (VkSpecializationInfo*)(toTransform->pSpecializationInfo));
+        transform_tohost_VkSpecializationInfo(resourceTracker, (VkSpecializationInfo*)(toTransform->pSpecializationInfo));
     }
 }
 
-void transform_VkVertexInputBindingDescription(
+void transform_fromhost_VkPipelineShaderStageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pSpecializationInfo)
+    {
+        transform_fromhost_VkSpecializationInfo(resourceTracker, (VkSpecializationInfo*)(toTransform->pSpecializationInfo));
+    }
+}
+
+void transform_tohost_VkVertexInputBindingDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDescription* toTransform)
 {
@@ -597,7 +1154,15 @@
     (void)toTransform;
 }
 
-void transform_VkVertexInputAttributeDescription(
+void transform_fromhost_VkVertexInputBindingDescription(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkVertexInputAttributeDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputAttributeDescription* toTransform)
 {
@@ -605,7 +1170,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineVertexInputStateCreateInfo(
+void transform_fromhost_VkVertexInputAttributeDescription(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineVertexInputStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineVertexInputStateCreateInfo* toTransform)
 {
@@ -613,25 +1186,51 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pVertexBindingDescriptions)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
         {
-            transform_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+            transform_tohost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
         }
     }
     if (toTransform->pVertexAttributeDescriptions)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
         {
-            transform_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+            transform_tohost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
         }
     }
 }
 
-void transform_VkPipelineInputAssemblyStateCreateInfo(
+void transform_fromhost_VkPipelineVertexInputStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineVertexInputStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVertexBindingDescriptions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
+        {
+            transform_fromhost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+        }
+    }
+    if (toTransform->pVertexAttributeDescriptions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
+        {
+            transform_fromhost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+        }
+    }
+}
+
+void transform_tohost_VkPipelineInputAssemblyStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineInputAssemblyStateCreateInfo* toTransform)
 {
@@ -639,11 +1238,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineTessellationStateCreateInfo(
+void transform_fromhost_VkPipelineInputAssemblyStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineInputAssemblyStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineTessellationStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineTessellationStateCreateInfo* toTransform)
 {
@@ -651,11 +1262,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkViewport(
+void transform_fromhost_VkPipelineTessellationStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineTessellationStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkViewport(
     ResourceTracker* resourceTracker,
     VkViewport* toTransform)
 {
@@ -663,7 +1286,15 @@
     (void)toTransform;
 }
 
-void transform_VkOffset2D(
+void transform_fromhost_VkViewport(
+    ResourceTracker* resourceTracker,
+    VkViewport* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkOffset2D(
     ResourceTracker* resourceTracker,
     VkOffset2D* toTransform)
 {
@@ -671,7 +1302,15 @@
     (void)toTransform;
 }
 
-void transform_VkExtent2D(
+void transform_fromhost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkExtent2D(
     ResourceTracker* resourceTracker,
     VkExtent2D* toTransform)
 {
@@ -679,17 +1318,35 @@
     (void)toTransform;
 }
 
-void transform_VkRect2D(
+void transform_fromhost_VkExtent2D(
+    ResourceTracker* resourceTracker,
+    VkExtent2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkRect2D(
     ResourceTracker* resourceTracker,
     VkRect2D* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
 }
 
-void transform_VkPipelineViewportStateCreateInfo(
+void transform_fromhost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkPipelineViewportStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineViewportStateCreateInfo* toTransform)
 {
@@ -697,25 +1354,51 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pViewports)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
         {
-            transform_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+            transform_tohost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
         }
     }
     if (toTransform->pScissors)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
         {
-            transform_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
         }
     }
 }
 
-void transform_VkPipelineRasterizationStateCreateInfo(
+void transform_fromhost_VkPipelineViewportStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pViewports)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        {
+            transform_fromhost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+        }
+    }
+    if (toTransform->pScissors)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
+        {
+            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+        }
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationStateCreateInfo* toTransform)
 {
@@ -723,11 +1406,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineMultisampleStateCreateInfo(
+void transform_fromhost_VkPipelineRasterizationStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineMultisampleStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineMultisampleStateCreateInfo* toTransform)
 {
@@ -735,11 +1430,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkStencilOpState(
+void transform_fromhost_VkPipelineMultisampleStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineMultisampleStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkStencilOpState(
     ResourceTracker* resourceTracker,
     VkStencilOpState* toTransform)
 {
@@ -747,7 +1454,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineDepthStencilStateCreateInfo(
+void transform_fromhost_VkStencilOpState(
+    ResourceTracker* resourceTracker,
+    VkStencilOpState* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineDepthStencilStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineDepthStencilStateCreateInfo* toTransform)
 {
@@ -755,13 +1470,27 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->front));
-    transform_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->back));
+    transform_tohost_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->front));
+    transform_tohost_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->back));
 }
 
-void transform_VkPipelineColorBlendAttachmentState(
+void transform_fromhost_VkPipelineDepthStencilStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineDepthStencilStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->front));
+    transform_fromhost_VkStencilOpState(resourceTracker, (VkStencilOpState*)(&toTransform->back));
+}
+
+void transform_tohost_VkPipelineColorBlendAttachmentState(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendAttachmentState* toTransform)
 {
@@ -769,7 +1498,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineColorBlendStateCreateInfo(
+void transform_fromhost_VkPipelineColorBlendAttachmentState(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendAttachmentState* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineColorBlendStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendStateCreateInfo* toTransform)
 {
@@ -777,18 +1514,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
         {
-            transform_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+            transform_tohost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
         }
     }
 }
 
-void transform_VkPipelineDynamicStateCreateInfo(
+void transform_fromhost_VkPipelineColorBlendStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        {
+            transform_fromhost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+        }
+    }
+}
+
+void transform_tohost_VkPipelineDynamicStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineDynamicStateCreateInfo* toTransform)
 {
@@ -796,11 +1552,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkGraphicsPipelineCreateInfo(
+void transform_fromhost_VkPipelineDynamicStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineDynamicStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkGraphicsPipelineCreateInfo(
     ResourceTracker* resourceTracker,
     VkGraphicsPipelineCreateInfo* toTransform)
 {
@@ -808,54 +1576,109 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pStages)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
         {
-            transform_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
         }
     }
     if (toTransform->pVertexInputState)
     {
-        transform_VkPipelineVertexInputStateCreateInfo(resourceTracker, (VkPipelineVertexInputStateCreateInfo*)(toTransform->pVertexInputState));
+        transform_tohost_VkPipelineVertexInputStateCreateInfo(resourceTracker, (VkPipelineVertexInputStateCreateInfo*)(toTransform->pVertexInputState));
     }
     if (toTransform->pInputAssemblyState)
     {
-        transform_VkPipelineInputAssemblyStateCreateInfo(resourceTracker, (VkPipelineInputAssemblyStateCreateInfo*)(toTransform->pInputAssemblyState));
+        transform_tohost_VkPipelineInputAssemblyStateCreateInfo(resourceTracker, (VkPipelineInputAssemblyStateCreateInfo*)(toTransform->pInputAssemblyState));
     }
     if (toTransform->pTessellationState)
     {
-        transform_VkPipelineTessellationStateCreateInfo(resourceTracker, (VkPipelineTessellationStateCreateInfo*)(toTransform->pTessellationState));
+        transform_tohost_VkPipelineTessellationStateCreateInfo(resourceTracker, (VkPipelineTessellationStateCreateInfo*)(toTransform->pTessellationState));
     }
     if (toTransform->pViewportState)
     {
-        transform_VkPipelineViewportStateCreateInfo(resourceTracker, (VkPipelineViewportStateCreateInfo*)(toTransform->pViewportState));
+        transform_tohost_VkPipelineViewportStateCreateInfo(resourceTracker, (VkPipelineViewportStateCreateInfo*)(toTransform->pViewportState));
     }
     if (toTransform->pRasterizationState)
     {
-        transform_VkPipelineRasterizationStateCreateInfo(resourceTracker, (VkPipelineRasterizationStateCreateInfo*)(toTransform->pRasterizationState));
+        transform_tohost_VkPipelineRasterizationStateCreateInfo(resourceTracker, (VkPipelineRasterizationStateCreateInfo*)(toTransform->pRasterizationState));
     }
     if (toTransform->pMultisampleState)
     {
-        transform_VkPipelineMultisampleStateCreateInfo(resourceTracker, (VkPipelineMultisampleStateCreateInfo*)(toTransform->pMultisampleState));
+        transform_tohost_VkPipelineMultisampleStateCreateInfo(resourceTracker, (VkPipelineMultisampleStateCreateInfo*)(toTransform->pMultisampleState));
     }
     if (toTransform->pDepthStencilState)
     {
-        transform_VkPipelineDepthStencilStateCreateInfo(resourceTracker, (VkPipelineDepthStencilStateCreateInfo*)(toTransform->pDepthStencilState));
+        transform_tohost_VkPipelineDepthStencilStateCreateInfo(resourceTracker, (VkPipelineDepthStencilStateCreateInfo*)(toTransform->pDepthStencilState));
     }
     if (toTransform->pColorBlendState)
     {
-        transform_VkPipelineColorBlendStateCreateInfo(resourceTracker, (VkPipelineColorBlendStateCreateInfo*)(toTransform->pColorBlendState));
+        transform_tohost_VkPipelineColorBlendStateCreateInfo(resourceTracker, (VkPipelineColorBlendStateCreateInfo*)(toTransform->pColorBlendState));
     }
     if (toTransform->pDynamicState)
     {
-        transform_VkPipelineDynamicStateCreateInfo(resourceTracker, (VkPipelineDynamicStateCreateInfo*)(toTransform->pDynamicState));
+        transform_tohost_VkPipelineDynamicStateCreateInfo(resourceTracker, (VkPipelineDynamicStateCreateInfo*)(toTransform->pDynamicState));
     }
 }
 
-void transform_VkComputePipelineCreateInfo(
+void transform_fromhost_VkGraphicsPipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStages)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+        {
+            transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+        }
+    }
+    if (toTransform->pVertexInputState)
+    {
+        transform_fromhost_VkPipelineVertexInputStateCreateInfo(resourceTracker, (VkPipelineVertexInputStateCreateInfo*)(toTransform->pVertexInputState));
+    }
+    if (toTransform->pInputAssemblyState)
+    {
+        transform_fromhost_VkPipelineInputAssemblyStateCreateInfo(resourceTracker, (VkPipelineInputAssemblyStateCreateInfo*)(toTransform->pInputAssemblyState));
+    }
+    if (toTransform->pTessellationState)
+    {
+        transform_fromhost_VkPipelineTessellationStateCreateInfo(resourceTracker, (VkPipelineTessellationStateCreateInfo*)(toTransform->pTessellationState));
+    }
+    if (toTransform->pViewportState)
+    {
+        transform_fromhost_VkPipelineViewportStateCreateInfo(resourceTracker, (VkPipelineViewportStateCreateInfo*)(toTransform->pViewportState));
+    }
+    if (toTransform->pRasterizationState)
+    {
+        transform_fromhost_VkPipelineRasterizationStateCreateInfo(resourceTracker, (VkPipelineRasterizationStateCreateInfo*)(toTransform->pRasterizationState));
+    }
+    if (toTransform->pMultisampleState)
+    {
+        transform_fromhost_VkPipelineMultisampleStateCreateInfo(resourceTracker, (VkPipelineMultisampleStateCreateInfo*)(toTransform->pMultisampleState));
+    }
+    if (toTransform->pDepthStencilState)
+    {
+        transform_fromhost_VkPipelineDepthStencilStateCreateInfo(resourceTracker, (VkPipelineDepthStencilStateCreateInfo*)(toTransform->pDepthStencilState));
+    }
+    if (toTransform->pColorBlendState)
+    {
+        transform_fromhost_VkPipelineColorBlendStateCreateInfo(resourceTracker, (VkPipelineColorBlendStateCreateInfo*)(toTransform->pColorBlendState));
+    }
+    if (toTransform->pDynamicState)
+    {
+        transform_fromhost_VkPipelineDynamicStateCreateInfo(resourceTracker, (VkPipelineDynamicStateCreateInfo*)(toTransform->pDynamicState));
+    }
+}
+
+void transform_tohost_VkComputePipelineCreateInfo(
     ResourceTracker* resourceTracker,
     VkComputePipelineCreateInfo* toTransform)
 {
@@ -863,12 +1686,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
+    transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
 }
 
-void transform_VkPushConstantRange(
+void transform_fromhost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
+}
+
+void transform_tohost_VkPushConstantRange(
     ResourceTracker* resourceTracker,
     VkPushConstantRange* toTransform)
 {
@@ -876,7 +1712,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineLayoutCreateInfo(
+void transform_fromhost_VkPushConstantRange(
+    ResourceTracker* resourceTracker,
+    VkPushConstantRange* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineLayoutCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineLayoutCreateInfo* toTransform)
 {
@@ -884,18 +1728,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pPushConstantRanges)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
         {
-            transform_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+            transform_tohost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
         }
     }
 }
 
-void transform_VkSamplerCreateInfo(
+void transform_fromhost_VkPipelineLayoutCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineLayoutCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPushConstantRanges)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
+        {
+            transform_fromhost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+        }
+    }
+}
+
+void transform_tohost_VkSamplerCreateInfo(
     ResourceTracker* resourceTracker,
     VkSamplerCreateInfo* toTransform)
 {
@@ -903,11 +1766,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorSetLayoutBinding(
+void transform_fromhost_VkSamplerCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetLayoutBinding(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutBinding* toTransform)
 {
@@ -915,7 +1790,15 @@
     (void)toTransform;
 }
 
-void transform_VkDescriptorSetLayoutCreateInfo(
+void transform_fromhost_VkDescriptorSetLayoutBinding(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBinding* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorSetLayoutCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutCreateInfo* toTransform)
 {
@@ -923,18 +1806,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pBindings)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
         {
-            transform_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+            transform_tohost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
         }
     }
 }
 
-void transform_VkDescriptorPoolSize(
+void transform_fromhost_VkDescriptorSetLayoutCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pBindings)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
+        {
+            transform_fromhost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+        }
+    }
+}
+
+void transform_tohost_VkDescriptorPoolSize(
     ResourceTracker* resourceTracker,
     VkDescriptorPoolSize* toTransform)
 {
@@ -942,7 +1844,15 @@
     (void)toTransform;
 }
 
-void transform_VkDescriptorPoolCreateInfo(
+void transform_fromhost_VkDescriptorPoolSize(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolSize* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorPoolCreateInfo* toTransform)
 {
@@ -950,18 +1860,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pPoolSizes)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
         {
-            transform_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
+            transform_tohost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
         }
     }
 }
 
-void transform_VkDescriptorSetAllocateInfo(
+void transform_fromhost_VkDescriptorPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPoolSizes)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
+        {
+            transform_fromhost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
+        }
+    }
+}
+
+void transform_tohost_VkDescriptorSetAllocateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorSetAllocateInfo* toTransform)
 {
@@ -969,11 +1898,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorImageInfo(
+void transform_fromhost_VkDescriptorSetAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorImageInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorImageInfo* toTransform)
 {
@@ -981,7 +1922,15 @@
     (void)toTransform;
 }
 
-void transform_VkDescriptorBufferInfo(
+void transform_fromhost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorBufferInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorBufferInfo* toTransform)
 {
@@ -989,7 +1938,15 @@
     (void)toTransform;
 }
 
-void transform_VkWriteDescriptorSet(
+void transform_fromhost_VkDescriptorBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorBufferInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkWriteDescriptorSet(
     ResourceTracker* resourceTracker,
     VkWriteDescriptorSet* toTransform)
 {
@@ -997,25 +1954,51 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pImageInfo)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
         {
-            transform_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+            transform_tohost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
         }
     }
     if (toTransform->pBufferInfo)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
         {
-            transform_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+            transform_tohost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
         }
     }
 }
 
-void transform_VkCopyDescriptorSet(
+void transform_fromhost_VkWriteDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSet* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pImageInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        {
+            transform_fromhost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+        }
+    }
+    if (toTransform->pBufferInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        {
+            transform_fromhost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+        }
+    }
+}
+
+void transform_tohost_VkCopyDescriptorSet(
     ResourceTracker* resourceTracker,
     VkCopyDescriptorSet* toTransform)
 {
@@ -1023,11 +2006,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkFramebufferCreateInfo(
+void transform_fromhost_VkCopyDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkCopyDescriptorSet* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFramebufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkFramebufferCreateInfo* toTransform)
 {
@@ -1035,11 +2030,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkAttachmentDescription(
+void transform_fromhost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentDescription(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription* toTransform)
 {
@@ -1047,7 +2054,15 @@
     (void)toTransform;
 }
 
-void transform_VkAttachmentReference(
+void transform_fromhost_VkAttachmentDescription(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAttachmentReference(
     ResourceTracker* resourceTracker,
     VkAttachmentReference* toTransform)
 {
@@ -1055,7 +2070,15 @@
     (void)toTransform;
 }
 
-void transform_VkSubpassDescription(
+void transform_fromhost_VkAttachmentReference(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSubpassDescription(
     ResourceTracker* resourceTracker,
     VkSubpassDescription* toTransform)
 {
@@ -1065,30 +2088,63 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
         }
     }
     if (toTransform->pColorAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
         }
     }
     if (toTransform->pResolveAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
         }
     }
     if (toTransform->pDepthStencilAttachment)
     {
-        transform_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pDepthStencilAttachment));
+        transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pDepthStencilAttachment));
     }
 }
 
-void transform_VkSubpassDependency(
+void transform_fromhost_VkSubpassDescription(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pInputAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+        }
+    }
+    if (toTransform->pColorAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+        }
+    }
+    if (toTransform->pResolveAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+        }
+    }
+    if (toTransform->pDepthStencilAttachment)
+    {
+        transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pDepthStencilAttachment));
+    }
+}
+
+void transform_tohost_VkSubpassDependency(
     ResourceTracker* resourceTracker,
     VkSubpassDependency* toTransform)
 {
@@ -1096,7 +2152,15 @@
     (void)toTransform;
 }
 
-void transform_VkRenderPassCreateInfo(
+void transform_fromhost_VkSubpassDependency(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkRenderPassCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassCreateInfo* toTransform)
 {
@@ -1104,32 +2168,65 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
         {
-            transform_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+            transform_tohost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
         }
     }
     if (toTransform->pSubpasses)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
         {
-            transform_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+            transform_tohost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
         }
     }
     if (toTransform->pDependencies)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
         {
-            transform_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+            transform_tohost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
         }
     }
 }
 
-void transform_VkCommandPoolCreateInfo(
+void transform_fromhost_VkRenderPassCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+        }
+    }
+    if (toTransform->pSubpasses)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+        {
+            transform_fromhost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+        }
+    }
+    if (toTransform->pDependencies)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+        {
+            transform_fromhost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+        }
+    }
+}
+
+void transform_tohost_VkCommandPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkCommandPoolCreateInfo* toTransform)
 {
@@ -1137,11 +2234,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkCommandBufferAllocateInfo(
+void transform_fromhost_VkCommandPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandPoolCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferAllocateInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferAllocateInfo* toTransform)
 {
@@ -1149,11 +2258,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkCommandBufferInheritanceInfo(
+void transform_fromhost_VkCommandBufferAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferInheritanceInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferInheritanceInfo* toTransform)
 {
@@ -1161,11 +2282,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkCommandBufferBeginInfo(
+void transform_fromhost_VkCommandBufferInheritanceInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferBeginInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferBeginInfo* toTransform)
 {
@@ -1173,15 +2306,31 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pInheritanceInfo)
     {
-        transform_VkCommandBufferInheritanceInfo(resourceTracker, (VkCommandBufferInheritanceInfo*)(toTransform->pInheritanceInfo));
+        transform_tohost_VkCommandBufferInheritanceInfo(resourceTracker, (VkCommandBufferInheritanceInfo*)(toTransform->pInheritanceInfo));
     }
 }
 
-void transform_VkBufferCopy(
+void transform_fromhost_VkCommandBufferBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pInheritanceInfo)
+    {
+        transform_fromhost_VkCommandBufferInheritanceInfo(resourceTracker, (VkCommandBufferInheritanceInfo*)(toTransform->pInheritanceInfo));
+    }
+}
+
+void transform_tohost_VkBufferCopy(
     ResourceTracker* resourceTracker,
     VkBufferCopy* toTransform)
 {
@@ -1189,7 +2338,15 @@
     (void)toTransform;
 }
 
-void transform_VkImageSubresourceLayers(
+void transform_fromhost_VkBufferCopy(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageSubresourceLayers(
     ResourceTracker* resourceTracker,
     VkImageSubresourceLayers* toTransform)
 {
@@ -1197,49 +2354,99 @@
     (void)toTransform;
 }
 
-void transform_VkImageCopy(
+void transform_fromhost_VkImageSubresourceLayers(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceLayers* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageCopy(
     ResourceTracker* resourceTracker,
     VkImageCopy* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
 }
 
-void transform_VkImageBlit(
+void transform_fromhost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkImageBlit(
     ResourceTracker* resourceTracker,
     VkImageBlit* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
     for (uint32_t i = 0; i < (uint32_t)2; ++i)
     {
-        transform_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
     }
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
     for (uint32_t i = 0; i < (uint32_t)2; ++i)
     {
-        transform_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
     }
 }
 
-void transform_VkBufferImageCopy(
+void transform_fromhost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+    }
+}
+
+void transform_tohost_VkBufferImageCopy(
     ResourceTracker* resourceTracker,
     VkBufferImageCopy* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->imageSubresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->imageOffset));
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageExtent));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->imageSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->imageOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageExtent));
 }
 
-void transform_VkClearColorValue(
+void transform_fromhost_VkBufferImageCopy(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->imageSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->imageOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageExtent));
+}
+
+void transform_tohost_VkClearColorValue(
     ResourceTracker* resourceTracker,
     VkClearColorValue* toTransform)
 {
@@ -1247,7 +2454,15 @@
     (void)toTransform;
 }
 
-void transform_VkClearDepthStencilValue(
+void transform_fromhost_VkClearColorValue(
+    ResourceTracker* resourceTracker,
+    VkClearColorValue* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkClearDepthStencilValue(
     ResourceTracker* resourceTracker,
     VkClearDepthStencilValue* toTransform)
 {
@@ -1255,48 +2470,97 @@
     (void)toTransform;
 }
 
-void transform_VkClearValue(
+void transform_fromhost_VkClearDepthStencilValue(
+    ResourceTracker* resourceTracker,
+    VkClearDepthStencilValue* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkClearValue(
     ResourceTracker* resourceTracker,
     VkClearValue* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkClearColorValue(resourceTracker, (VkClearColorValue*)(&toTransform->color));
-    transform_VkClearDepthStencilValue(resourceTracker, (VkClearDepthStencilValue*)(&toTransform->depthStencil));
+    transform_tohost_VkClearColorValue(resourceTracker, (VkClearColorValue*)(&toTransform->color));
+    transform_tohost_VkClearDepthStencilValue(resourceTracker, (VkClearDepthStencilValue*)(&toTransform->depthStencil));
 }
 
-void transform_VkClearAttachment(
+void transform_fromhost_VkClearValue(
+    ResourceTracker* resourceTracker,
+    VkClearValue* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkClearColorValue(resourceTracker, (VkClearColorValue*)(&toTransform->color));
+    transform_fromhost_VkClearDepthStencilValue(resourceTracker, (VkClearDepthStencilValue*)(&toTransform->depthStencil));
+}
+
+void transform_tohost_VkClearAttachment(
     ResourceTracker* resourceTracker,
     VkClearAttachment* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkClearValue(resourceTracker, (VkClearValue*)(&toTransform->clearValue));
+    transform_tohost_VkClearValue(resourceTracker, (VkClearValue*)(&toTransform->clearValue));
 }
 
-void transform_VkClearRect(
+void transform_fromhost_VkClearAttachment(
+    ResourceTracker* resourceTracker,
+    VkClearAttachment* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkClearValue(resourceTracker, (VkClearValue*)(&toTransform->clearValue));
+}
+
+void transform_tohost_VkClearRect(
     ResourceTracker* resourceTracker,
     VkClearRect* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->rect));
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->rect));
 }
 
-void transform_VkImageResolve(
+void transform_fromhost_VkClearRect(
+    ResourceTracker* resourceTracker,
+    VkClearRect* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->rect));
+}
+
+void transform_tohost_VkImageResolve(
     ResourceTracker* resourceTracker,
     VkImageResolve* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
-    transform_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    transform_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
-    transform_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
 }
 
-void transform_VkMemoryBarrier(
+void transform_fromhost_VkImageResolve(
+    ResourceTracker* resourceTracker,
+    VkImageResolve* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkMemoryBarrier* toTransform)
 {
@@ -1304,11 +2568,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBufferMemoryBarrier(
+void transform_fromhost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkBufferMemoryBarrier* toTransform)
 {
@@ -1316,11 +2592,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImageMemoryBarrier(
+void transform_fromhost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkImageMemoryBarrier* toTransform)
 {
@@ -1328,12 +2616,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+    transform_tohost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
 }
 
-void transform_VkRenderPassBeginInfo(
+void transform_fromhost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+}
+
+void transform_tohost_VkRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassBeginInfo* toTransform)
 {
@@ -1341,19 +2642,39 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
     if (toTransform->pClearValues)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
         {
-            transform_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+            transform_tohost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
         }
     }
 }
 
-void transform_VkDispatchIndirectCommand(
+void transform_fromhost_VkRenderPassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+    if (toTransform->pClearValues)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
+        {
+            transform_fromhost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+        }
+    }
+}
+
+void transform_tohost_VkDispatchIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDispatchIndirectCommand* toTransform)
 {
@@ -1361,7 +2682,15 @@
     (void)toTransform;
 }
 
-void transform_VkDrawIndexedIndirectCommand(
+void transform_fromhost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrawIndexedIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDrawIndexedIndirectCommand* toTransform)
 {
@@ -1369,7 +2698,15 @@
     (void)toTransform;
 }
 
-void transform_VkDrawIndirectCommand(
+void transform_fromhost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrawIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDrawIndirectCommand* toTransform)
 {
@@ -1377,7 +2714,15 @@
     (void)toTransform;
 }
 
-void transform_VkBaseOutStructure(
+void transform_fromhost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkBaseOutStructure(
     ResourceTracker* resourceTracker,
     VkBaseOutStructure* toTransform)
 {
@@ -1385,11 +2730,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBaseInStructure(
+void transform_fromhost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBaseInStructure(
     ResourceTracker* resourceTracker,
     VkBaseInStructure* toTransform)
 {
@@ -1397,13 +2754,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_VERSION_1_1
-void transform_VkPhysicalDeviceSubgroupProperties(
+void transform_tohost_VkPhysicalDeviceSubgroupProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSubgroupProperties* toTransform)
 {
@@ -1411,37 +2780,75 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindBufferMemoryInfo(
+void transform_fromhost_VkPhysicalDeviceSubgroupProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindBufferMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindBufferMemoryInfo* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindImageMemoryInfo(
+void transform_fromhost_VkBindBufferMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindBufferMemoryInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindImageMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindImageMemoryInfo* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, nullptr, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDevice16BitStorageFeatures(
+void transform_fromhost_VkBindImageMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemoryInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 1, &toTransform->memoryOffset, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevice16BitStorageFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDevice16BitStorageFeatures* toTransform)
 {
@@ -1449,11 +2856,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryDedicatedRequirements(
+void transform_fromhost_VkPhysicalDevice16BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice16BitStorageFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryDedicatedRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryDedicatedRequirements* toTransform)
 {
@@ -1461,11 +2880,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryDedicatedAllocateInfo(
+void transform_fromhost_VkMemoryDedicatedRequirements(
+    ResourceTracker* resourceTracker,
+    VkMemoryDedicatedRequirements* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryDedicatedAllocateInfo(
     ResourceTracker* resourceTracker,
     VkMemoryDedicatedAllocateInfo* toTransform)
 {
@@ -1473,11 +2904,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryAllocateFlagsInfo(
+void transform_fromhost_VkMemoryDedicatedAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryDedicatedAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryAllocateFlagsInfo(
     ResourceTracker* resourceTracker,
     VkMemoryAllocateFlagsInfo* toTransform)
 {
@@ -1485,11 +2928,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupRenderPassBeginInfo(
+void transform_fromhost_VkMemoryAllocateFlagsInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateFlagsInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupRenderPassBeginInfo* toTransform)
 {
@@ -1497,18 +2952,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pDeviceRenderAreas)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
         {
-            transform_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
         }
     }
 }
 
-void transform_VkDeviceGroupCommandBufferBeginInfo(
+void transform_fromhost_VkDeviceGroupRenderPassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupRenderPassBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pDeviceRenderAreas)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
+        {
+            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+        }
+    }
+}
+
+void transform_tohost_VkDeviceGroupCommandBufferBeginInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupCommandBufferBeginInfo* toTransform)
 {
@@ -1516,11 +2990,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupSubmitInfo(
+void transform_fromhost_VkDeviceGroupCommandBufferBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupCommandBufferBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupSubmitInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupSubmitInfo* toTransform)
 {
@@ -1528,11 +3014,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupBindSparseInfo(
+void transform_fromhost_VkDeviceGroupSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupSubmitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupBindSparseInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupBindSparseInfo* toTransform)
 {
@@ -1540,11 +3038,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindBufferMemoryDeviceGroupInfo(
+void transform_fromhost_VkDeviceGroupBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupBindSparseInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindBufferMemoryDeviceGroupInfo(
     ResourceTracker* resourceTracker,
     VkBindBufferMemoryDeviceGroupInfo* toTransform)
 {
@@ -1552,11 +3062,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindImageMemoryDeviceGroupInfo(
+void transform_fromhost_VkBindBufferMemoryDeviceGroupInfo(
+    ResourceTracker* resourceTracker,
+    VkBindBufferMemoryDeviceGroupInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindImageMemoryDeviceGroupInfo(
     ResourceTracker* resourceTracker,
     VkBindImageMemoryDeviceGroupInfo* toTransform)
 {
@@ -1564,18 +3086,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pSplitInstanceBindRegions)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
         {
-            transform_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
         }
     }
 }
 
-void transform_VkPhysicalDeviceGroupProperties(
+void transform_fromhost_VkBindImageMemoryDeviceGroupInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemoryDeviceGroupInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pSplitInstanceBindRegions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
+        {
+            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceGroupProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceGroupProperties* toTransform)
 {
@@ -1583,11 +3124,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupDeviceCreateInfo(
+void transform_fromhost_VkPhysicalDeviceGroupProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGroupProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupDeviceCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupDeviceCreateInfo* toTransform)
 {
@@ -1595,11 +3148,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBufferMemoryRequirementsInfo2(
+void transform_fromhost_VkDeviceGroupDeviceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupDeviceCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkBufferMemoryRequirementsInfo2* toTransform)
 {
@@ -1607,11 +3172,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImageMemoryRequirementsInfo2(
+void transform_fromhost_VkBufferMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryRequirementsInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkImageMemoryRequirementsInfo2* toTransform)
 {
@@ -1619,11 +3196,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImageSparseMemoryRequirementsInfo2(
+void transform_fromhost_VkImageMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryRequirementsInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageSparseMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkImageSparseMemoryRequirementsInfo2* toTransform)
 {
@@ -1631,11 +3220,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryRequirements2(
+void transform_fromhost_VkImageSparseMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkImageSparseMemoryRequirementsInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryRequirements2(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements2* toTransform)
 {
@@ -1643,12 +3244,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkMemoryRequirements(resourceTracker, (VkMemoryRequirements*)(&toTransform->memoryRequirements));
+    transform_tohost_VkMemoryRequirements(resourceTracker, (VkMemoryRequirements*)(&toTransform->memoryRequirements));
 }
 
-void transform_VkSparseImageMemoryRequirements2(
+void transform_fromhost_VkMemoryRequirements2(
+    ResourceTracker* resourceTracker,
+    VkMemoryRequirements2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkMemoryRequirements(resourceTracker, (VkMemoryRequirements*)(&toTransform->memoryRequirements));
+}
+
+void transform_tohost_VkSparseImageMemoryRequirements2(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryRequirements2* toTransform)
 {
@@ -1656,12 +3270,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkSparseImageMemoryRequirements(resourceTracker, (VkSparseImageMemoryRequirements*)(&toTransform->memoryRequirements));
+    transform_tohost_VkSparseImageMemoryRequirements(resourceTracker, (VkSparseImageMemoryRequirements*)(&toTransform->memoryRequirements));
 }
 
-void transform_VkPhysicalDeviceFeatures2(
+void transform_fromhost_VkSparseImageMemoryRequirements2(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSparseImageMemoryRequirements(resourceTracker, (VkSparseImageMemoryRequirements*)(&toTransform->memoryRequirements));
+}
+
+void transform_tohost_VkPhysicalDeviceFeatures2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceFeatures2* toTransform)
 {
@@ -1669,12 +3296,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(&toTransform->features));
+    transform_tohost_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(&toTransform->features));
 }
 
-void transform_VkPhysicalDeviceProperties2(
+void transform_fromhost_VkPhysicalDeviceFeatures2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPhysicalDeviceFeatures(resourceTracker, (VkPhysicalDeviceFeatures*)(&toTransform->features));
+}
+
+void transform_tohost_VkPhysicalDeviceProperties2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProperties2* toTransform)
 {
@@ -1682,12 +3322,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkPhysicalDeviceProperties(resourceTracker, (VkPhysicalDeviceProperties*)(&toTransform->properties));
+    transform_tohost_VkPhysicalDeviceProperties(resourceTracker, (VkPhysicalDeviceProperties*)(&toTransform->properties));
 }
 
-void transform_VkFormatProperties2(
+void transform_fromhost_VkPhysicalDeviceProperties2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPhysicalDeviceProperties(resourceTracker, (VkPhysicalDeviceProperties*)(&toTransform->properties));
+}
+
+void transform_tohost_VkFormatProperties2(
     ResourceTracker* resourceTracker,
     VkFormatProperties2* toTransform)
 {
@@ -1695,12 +3348,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkFormatProperties(resourceTracker, (VkFormatProperties*)(&toTransform->formatProperties));
+    transform_tohost_VkFormatProperties(resourceTracker, (VkFormatProperties*)(&toTransform->formatProperties));
 }
 
-void transform_VkImageFormatProperties2(
+void transform_fromhost_VkFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkFormatProperties(resourceTracker, (VkFormatProperties*)(&toTransform->formatProperties));
+}
+
+void transform_tohost_VkImageFormatProperties2(
     ResourceTracker* resourceTracker,
     VkImageFormatProperties2* toTransform)
 {
@@ -1708,12 +3374,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
+    transform_tohost_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
 }
 
-void transform_VkPhysicalDeviceImageFormatInfo2(
+void transform_fromhost_VkImageFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
+}
+
+void transform_tohost_VkPhysicalDeviceImageFormatInfo2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceImageFormatInfo2* toTransform)
 {
@@ -1721,11 +3400,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkQueueFamilyProperties2(
+void transform_fromhost_VkPhysicalDeviceImageFormatInfo2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageFormatInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueueFamilyProperties2(
     ResourceTracker* resourceTracker,
     VkQueueFamilyProperties2* toTransform)
 {
@@ -1733,12 +3424,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkQueueFamilyProperties(resourceTracker, (VkQueueFamilyProperties*)(&toTransform->queueFamilyProperties));
+    transform_tohost_VkQueueFamilyProperties(resourceTracker, (VkQueueFamilyProperties*)(&toTransform->queueFamilyProperties));
 }
 
-void transform_VkPhysicalDeviceMemoryProperties2(
+void transform_fromhost_VkQueueFamilyProperties2(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkQueueFamilyProperties(resourceTracker, (VkQueueFamilyProperties*)(&toTransform->queueFamilyProperties));
+}
+
+void transform_tohost_VkPhysicalDeviceMemoryProperties2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMemoryProperties2* toTransform)
 {
@@ -1746,12 +3450,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkPhysicalDeviceMemoryProperties(resourceTracker, (VkPhysicalDeviceMemoryProperties*)(&toTransform->memoryProperties));
+    transform_tohost_VkPhysicalDeviceMemoryProperties(resourceTracker, (VkPhysicalDeviceMemoryProperties*)(&toTransform->memoryProperties));
 }
 
-void transform_VkSparseImageFormatProperties2(
+void transform_fromhost_VkPhysicalDeviceMemoryProperties2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPhysicalDeviceMemoryProperties(resourceTracker, (VkPhysicalDeviceMemoryProperties*)(&toTransform->memoryProperties));
+}
+
+void transform_tohost_VkSparseImageFormatProperties2(
     ResourceTracker* resourceTracker,
     VkSparseImageFormatProperties2* toTransform)
 {
@@ -1759,12 +3476,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->properties));
+    transform_tohost_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->properties));
 }
 
-void transform_VkPhysicalDeviceSparseImageFormatInfo2(
+void transform_fromhost_VkSparseImageFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->properties));
+}
+
+void transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseImageFormatInfo2* toTransform)
 {
@@ -1772,11 +3502,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDevicePointClippingProperties(
+void transform_fromhost_VkPhysicalDeviceSparseImageFormatInfo2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSparseImageFormatInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevicePointClippingProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDevicePointClippingProperties* toTransform)
 {
@@ -1784,11 +3526,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkInputAttachmentAspectReference(
+void transform_fromhost_VkPhysicalDevicePointClippingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePointClippingProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkInputAttachmentAspectReference(
     ResourceTracker* resourceTracker,
     VkInputAttachmentAspectReference* toTransform)
 {
@@ -1796,7 +3550,15 @@
     (void)toTransform;
 }
 
-void transform_VkRenderPassInputAttachmentAspectCreateInfo(
+void transform_fromhost_VkInputAttachmentAspectReference(
+    ResourceTracker* resourceTracker,
+    VkInputAttachmentAspectReference* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkRenderPassInputAttachmentAspectCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassInputAttachmentAspectCreateInfo* toTransform)
 {
@@ -1804,18 +3566,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pAspectReferences)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
         {
-            transform_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+            transform_tohost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
         }
     }
 }
 
-void transform_VkImageViewUsageCreateInfo(
+void transform_fromhost_VkRenderPassInputAttachmentAspectCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassInputAttachmentAspectCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pAspectReferences)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
+        {
+            transform_fromhost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+        }
+    }
+}
+
+void transform_tohost_VkImageViewUsageCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewUsageCreateInfo* toTransform)
 {
@@ -1823,11 +3604,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineTessellationDomainOriginStateCreateInfo(
+void transform_fromhost_VkImageViewUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageViewUsageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineTessellationDomainOriginStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineTessellationDomainOriginStateCreateInfo* toTransform)
 {
@@ -1835,11 +3628,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkRenderPassMultiviewCreateInfo(
+void transform_fromhost_VkPipelineTessellationDomainOriginStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineTessellationDomainOriginStateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRenderPassMultiviewCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassMultiviewCreateInfo* toTransform)
 {
@@ -1847,11 +3652,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceMultiviewFeatures(
+void transform_fromhost_VkRenderPassMultiviewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassMultiviewCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMultiviewFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewFeatures* toTransform)
 {
@@ -1859,11 +3676,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceMultiviewProperties(
+void transform_fromhost_VkPhysicalDeviceMultiviewFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMultiviewProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewProperties* toTransform)
 {
@@ -1871,11 +3700,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceVariablePointerFeatures(
+void transform_fromhost_VkPhysicalDeviceMultiviewProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceVariablePointerFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceVariablePointerFeatures* toTransform)
 {
@@ -1883,11 +3724,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceProtectedMemoryFeatures(
+void transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVariablePointerFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceProtectedMemoryFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProtectedMemoryFeatures* toTransform)
 {
@@ -1895,11 +3748,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceProtectedMemoryProperties(
+void transform_fromhost_VkPhysicalDeviceProtectedMemoryFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProtectedMemoryFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceProtectedMemoryProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProtectedMemoryProperties* toTransform)
 {
@@ -1907,11 +3772,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceQueueInfo2(
+void transform_fromhost_VkPhysicalDeviceProtectedMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProtectedMemoryProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceQueueInfo2(
     ResourceTracker* resourceTracker,
     VkDeviceQueueInfo2* toTransform)
 {
@@ -1919,11 +3796,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkProtectedSubmitInfo(
+void transform_fromhost_VkDeviceQueueInfo2(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkProtectedSubmitInfo(
     ResourceTracker* resourceTracker,
     VkProtectedSubmitInfo* toTransform)
 {
@@ -1931,11 +3820,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSamplerYcbcrConversionCreateInfo(
+void transform_fromhost_VkProtectedSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkProtectedSubmitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSamplerYcbcrConversionCreateInfo(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionCreateInfo* toTransform)
 {
@@ -1943,12 +3844,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
 }
 
-void transform_VkSamplerYcbcrConversionInfo(
+void transform_fromhost_VkSamplerYcbcrConversionCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+}
+
+void transform_tohost_VkSamplerYcbcrConversionInfo(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionInfo* toTransform)
 {
@@ -1956,11 +3870,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindImagePlaneMemoryInfo(
+void transform_fromhost_VkSamplerYcbcrConversionInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindImagePlaneMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindImagePlaneMemoryInfo* toTransform)
 {
@@ -1968,11 +3894,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImagePlaneMemoryRequirementsInfo(
+void transform_fromhost_VkBindImagePlaneMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImagePlaneMemoryInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImagePlaneMemoryRequirementsInfo(
     ResourceTracker* resourceTracker,
     VkImagePlaneMemoryRequirementsInfo* toTransform)
 {
@@ -1980,11 +3918,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
+void transform_fromhost_VkImagePlaneMemoryRequirementsInfo(
+    ResourceTracker* resourceTracker,
+    VkImagePlaneMemoryRequirementsInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSamplerYcbcrConversionFeatures* toTransform)
 {
@@ -1992,11 +3942,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSamplerYcbcrConversionImageFormatProperties(
+void transform_fromhost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerYcbcrConversionFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSamplerYcbcrConversionImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionImageFormatProperties* toTransform)
 {
@@ -2004,11 +3966,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorUpdateTemplateEntry(
+void transform_fromhost_VkSamplerYcbcrConversionImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorUpdateTemplateEntry(
     ResourceTracker* resourceTracker,
     VkDescriptorUpdateTemplateEntry* toTransform)
 {
@@ -2016,7 +3990,15 @@
     (void)toTransform;
 }
 
-void transform_VkDescriptorUpdateTemplateCreateInfo(
+void transform_fromhost_VkDescriptorUpdateTemplateEntry(
+    ResourceTracker* resourceTracker,
+    VkDescriptorUpdateTemplateEntry* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorUpdateTemplateCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorUpdateTemplateCreateInfo* toTransform)
 {
@@ -2024,18 +4006,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pDescriptorUpdateEntries)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
         {
-            transform_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+            transform_tohost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
         }
     }
 }
 
-void transform_VkExternalMemoryProperties(
+void transform_fromhost_VkDescriptorUpdateTemplateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorUpdateTemplateCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pDescriptorUpdateEntries)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
+        {
+            transform_fromhost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+        }
+    }
+}
+
+void transform_tohost_VkExternalMemoryProperties(
     ResourceTracker* resourceTracker,
     VkExternalMemoryProperties* toTransform)
 {
@@ -2043,7 +4044,15 @@
     (void)toTransform;
 }
 
-void transform_VkPhysicalDeviceExternalImageFormatInfo(
+void transform_fromhost_VkExternalMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceExternalImageFormatInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalImageFormatInfo* toTransform)
 {
@@ -2051,11 +4060,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalImageFormatProperties(
+void transform_fromhost_VkPhysicalDeviceExternalImageFormatInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalImageFormatInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkExternalImageFormatProperties* toTransform)
 {
@@ -2063,12 +4084,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
+    transform_tohost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
 }
 
-void transform_VkPhysicalDeviceExternalBufferInfo(
+void transform_fromhost_VkExternalImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
+}
+
+void transform_tohost_VkPhysicalDeviceExternalBufferInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalBufferInfo* toTransform)
 {
@@ -2076,11 +4110,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalBufferProperties(
+void transform_fromhost_VkPhysicalDeviceExternalBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalBufferInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalBufferProperties(
     ResourceTracker* resourceTracker,
     VkExternalBufferProperties* toTransform)
 {
@@ -2088,12 +4134,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
+    transform_tohost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
 }
 
-void transform_VkPhysicalDeviceIDProperties(
+void transform_fromhost_VkExternalBufferProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalBufferProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
+}
+
+void transform_tohost_VkPhysicalDeviceIDProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceIDProperties* toTransform)
 {
@@ -2101,11 +4160,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalMemoryImageCreateInfo(
+void transform_fromhost_VkPhysicalDeviceIDProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIDProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalMemoryImageCreateInfo(
     ResourceTracker* resourceTracker,
     VkExternalMemoryImageCreateInfo* toTransform)
 {
@@ -2113,11 +4184,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalMemoryBufferCreateInfo(
+void transform_fromhost_VkExternalMemoryImageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryImageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalMemoryBufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkExternalMemoryBufferCreateInfo* toTransform)
 {
@@ -2125,11 +4208,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportMemoryAllocateInfo(
+void transform_fromhost_VkExternalMemoryBufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryBufferCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportMemoryAllocateInfo(
     ResourceTracker* resourceTracker,
     VkExportMemoryAllocateInfo* toTransform)
 {
@@ -2137,11 +4232,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceExternalFenceInfo(
+void transform_fromhost_VkExportMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceExternalFenceInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalFenceInfo* toTransform)
 {
@@ -2149,11 +4256,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalFenceProperties(
+void transform_fromhost_VkPhysicalDeviceExternalFenceInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalFenceInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalFenceProperties(
     ResourceTracker* resourceTracker,
     VkExternalFenceProperties* toTransform)
 {
@@ -2161,11 +4280,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportFenceCreateInfo(
+void transform_fromhost_VkExternalFenceProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalFenceProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkExportFenceCreateInfo* toTransform)
 {
@@ -2173,11 +4304,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportSemaphoreCreateInfo(
+void transform_fromhost_VkExportFenceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportFenceCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportSemaphoreCreateInfo(
     ResourceTracker* resourceTracker,
     VkExportSemaphoreCreateInfo* toTransform)
 {
@@ -2185,11 +4328,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceExternalSemaphoreInfo(
+void transform_fromhost_VkExportSemaphoreCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportSemaphoreCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalSemaphoreInfo* toTransform)
 {
@@ -2197,11 +4352,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalSemaphoreProperties(
+void transform_fromhost_VkPhysicalDeviceExternalSemaphoreInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalSemaphoreInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalSemaphoreProperties(
     ResourceTracker* resourceTracker,
     VkExternalSemaphoreProperties* toTransform)
 {
@@ -2209,11 +4376,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceMaintenance3Properties(
+void transform_fromhost_VkExternalSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalSemaphoreProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMaintenance3Properties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMaintenance3Properties* toTransform)
 {
@@ -2221,11 +4400,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorSetLayoutSupport(
+void transform_fromhost_VkPhysicalDeviceMaintenance3Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance3Properties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetLayoutSupport(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutSupport* toTransform)
 {
@@ -2233,11 +4424,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_fromhost_VkDescriptorSetLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutSupport* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceShaderDrawParameterFeatures* toTransform)
 {
@@ -2245,24 +4448,55 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_surface
-void transform_VkSurfaceCapabilitiesKHR(
+void transform_tohost_VkSurfaceCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilitiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
 }
 
-void transform_VkSurfaceFormatKHR(
+void transform_fromhost_VkSurfaceCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
+}
+
+void transform_tohost_VkSurfaceFormatKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFormatKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkSurfaceFormatKHR(
     ResourceTracker* resourceTracker,
     VkSurfaceFormatKHR* toTransform)
 {
@@ -2272,7 +4506,7 @@
 
 #endif
 #ifdef VK_KHR_swapchain
-void transform_VkSwapchainCreateInfoKHR(
+void transform_tohost_VkSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkSwapchainCreateInfoKHR* toTransform)
 {
@@ -2280,12 +4514,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
 }
 
-void transform_VkPresentInfoKHR(
+void transform_fromhost_VkSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSwapchainCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
+}
+
+void transform_tohost_VkPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkPresentInfoKHR* toTransform)
 {
@@ -2293,11 +4540,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkImageSwapchainCreateInfoKHR(
+void transform_fromhost_VkPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkImageSwapchainCreateInfoKHR* toTransform)
 {
@@ -2305,11 +4564,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkBindImageMemorySwapchainInfoKHR(
+void transform_fromhost_VkImageSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImageSwapchainCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBindImageMemorySwapchainInfoKHR(
     ResourceTracker* resourceTracker,
     VkBindImageMemorySwapchainInfoKHR* toTransform)
 {
@@ -2317,11 +4588,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkAcquireNextImageInfoKHR(
+void transform_fromhost_VkBindImageMemorySwapchainInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemorySwapchainInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAcquireNextImageInfoKHR(
     ResourceTracker* resourceTracker,
     VkAcquireNextImageInfoKHR* toTransform)
 {
@@ -2329,11 +4612,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupPresentCapabilitiesKHR(
+void transform_fromhost_VkAcquireNextImageInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireNextImageInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupPresentCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupPresentCapabilitiesKHR* toTransform)
 {
@@ -2341,11 +4636,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupPresentInfoKHR(
+void transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupPresentCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupPresentInfoKHR* toTransform)
 {
@@ -2353,11 +4660,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGroupSwapchainCreateInfoKHR(
+void transform_fromhost_VkDeviceGroupPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupPresentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupSwapchainCreateInfoKHR* toTransform)
 {
@@ -2365,41 +4684,81 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupSwapchainCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_display
-void transform_VkDisplayPropertiesKHR(
+void transform_tohost_VkDisplayPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPropertiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
 }
 
-void transform_VkDisplayModeParametersKHR(
+void transform_fromhost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
+}
+
+void transform_tohost_VkDisplayModeParametersKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeParametersKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->visibleRegion));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->visibleRegion));
 }
 
-void transform_VkDisplayModePropertiesKHR(
+void transform_fromhost_VkDisplayModeParametersKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeParametersKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->visibleRegion));
+}
+
+void transform_tohost_VkDisplayModePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModePropertiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+    transform_tohost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
 }
 
-void transform_VkDisplayModeCreateInfoKHR(
+void transform_fromhost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+}
+
+void transform_tohost_VkDisplayModeCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeCreateInfoKHR* toTransform)
 {
@@ -2407,28 +4766,57 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+    transform_tohost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
 }
 
-void transform_VkDisplayPlaneCapabilitiesKHR(
+void transform_fromhost_VkDisplayModeCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+}
+
+void transform_tohost_VkDisplayPlaneCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilitiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minSrcPosition));
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxSrcPosition));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minSrcExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSrcExtent));
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minDstPosition));
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxDstPosition));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minDstExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxDstExtent));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minSrcPosition));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxSrcPosition));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minSrcExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSrcExtent));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minDstPosition));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxDstPosition));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minDstExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxDstExtent));
 }
 
-void transform_VkDisplayPlanePropertiesKHR(
+void transform_fromhost_VkDisplayPlaneCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minSrcPosition));
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxSrcPosition));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minSrcExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSrcExtent));
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->minDstPosition));
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->maxDstPosition));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minDstExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxDstExtent));
+}
+
+void transform_tohost_VkDisplayPlanePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlanePropertiesKHR* toTransform)
 {
@@ -2436,7 +4824,15 @@
     (void)toTransform;
 }
 
-void transform_VkDisplaySurfaceCreateInfoKHR(
+void transform_fromhost_VkDisplayPlanePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlanePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDisplaySurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplaySurfaceCreateInfoKHR* toTransform)
 {
@@ -2444,14 +4840,27 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
+}
+
+void transform_fromhost_VkDisplaySurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplaySurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
 }
 
 #endif
 #ifdef VK_KHR_display_swapchain
-void transform_VkDisplayPresentInfoKHR(
+void transform_tohost_VkDisplayPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPresentInfoKHR* toTransform)
 {
@@ -2459,15 +4868,29 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->srcRect));
-    transform_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->dstRect));
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->srcRect));
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->dstRect));
+}
+
+void transform_fromhost_VkDisplayPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPresentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->srcRect));
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->dstRect));
 }
 
 #endif
 #ifdef VK_KHR_xlib_surface
-void transform_VkXlibSurfaceCreateInfoKHR(
+void transform_tohost_VkXlibSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkXlibSurfaceCreateInfoKHR* toTransform)
 {
@@ -2475,13 +4898,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkXlibSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkXlibSurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_xcb_surface
-void transform_VkXcbSurfaceCreateInfoKHR(
+void transform_tohost_VkXcbSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkXcbSurfaceCreateInfoKHR* toTransform)
 {
@@ -2489,13 +4924,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkXcbSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkXcbSurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_wayland_surface
-void transform_VkWaylandSurfaceCreateInfoKHR(
+void transform_tohost_VkWaylandSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkWaylandSurfaceCreateInfoKHR* toTransform)
 {
@@ -2503,13 +4950,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWaylandSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWaylandSurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_mir_surface
-void transform_VkMirSurfaceCreateInfoKHR(
+void transform_tohost_VkMirSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkMirSurfaceCreateInfoKHR* toTransform)
 {
@@ -2517,13 +4976,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMirSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMirSurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_android_surface
-void transform_VkAndroidSurfaceCreateInfoKHR(
+void transform_tohost_VkAndroidSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkAndroidSurfaceCreateInfoKHR* toTransform)
 {
@@ -2531,13 +5002,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAndroidSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAndroidSurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_win32_surface
-void transform_VkWin32SurfaceCreateInfoKHR(
+void transform_tohost_VkWin32SurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkWin32SurfaceCreateInfoKHR* toTransform)
 {
@@ -2545,7 +5028,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWin32SurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWin32SurfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -2569,7 +5064,7 @@
 #ifdef VK_KHR_external_memory
 #endif
 #ifdef VK_KHR_external_memory_win32
-void transform_VkImportMemoryWin32HandleInfoKHR(
+void transform_tohost_VkImportMemoryWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportMemoryWin32HandleInfoKHR* toTransform)
 {
@@ -2577,11 +5072,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportMemoryWin32HandleInfoKHR(
+void transform_fromhost_VkImportMemoryWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportMemoryWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportMemoryWin32HandleInfoKHR* toTransform)
 {
@@ -2589,39 +5096,77 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryWin32HandlePropertiesKHR(
+void transform_fromhost_VkExportMemoryWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryWin32HandlePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkMemoryWin32HandlePropertiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryGetWin32HandleInfoKHR(
+void transform_fromhost_VkMemoryWin32HandlePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryWin32HandlePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkMemoryGetWin32HandleInfoKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_external_memory_fd
-void transform_VkImportMemoryFdInfoKHR(
+void transform_tohost_VkImportMemoryFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportMemoryFdInfoKHR* toTransform)
 {
@@ -2629,48 +5174,99 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryFdPropertiesKHR(
+void transform_fromhost_VkImportMemoryFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryFdPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkMemoryFdPropertiesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryGetFdInfoKHR(
+void transform_fromhost_VkMemoryFdPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryFdPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkMemoryGetFdInfoKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_win32_keyed_mutex
-void transform_VkWin32KeyedMutexAcquireReleaseInfoKHR(
+void transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoKHR(
     ResourceTracker* resourceTracker,
     VkWin32KeyedMutexAcquireReleaseInfoKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWin32KeyedMutexAcquireReleaseInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -2680,7 +5276,7 @@
 #ifdef VK_KHR_external_semaphore
 #endif
 #ifdef VK_KHR_external_semaphore_win32
-void transform_VkImportSemaphoreWin32HandleInfoKHR(
+void transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportSemaphoreWin32HandleInfoKHR* toTransform)
 {
@@ -2688,11 +5284,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportSemaphoreWin32HandleInfoKHR(
+void transform_fromhost_VkImportSemaphoreWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportSemaphoreWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportSemaphoreWin32HandleInfoKHR* toTransform)
 {
@@ -2700,11 +5308,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkD3D12FenceSubmitInfoKHR(
+void transform_fromhost_VkExportSemaphoreWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportSemaphoreWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkD3D12FenceSubmitInfoKHR(
     ResourceTracker* resourceTracker,
     VkD3D12FenceSubmitInfoKHR* toTransform)
 {
@@ -2712,11 +5332,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSemaphoreGetWin32HandleInfoKHR(
+void transform_fromhost_VkD3D12FenceSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkD3D12FenceSubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkSemaphoreGetWin32HandleInfoKHR* toTransform)
 {
@@ -2724,13 +5356,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_external_semaphore_fd
-void transform_VkImportSemaphoreFdInfoKHR(
+void transform_tohost_VkImportSemaphoreFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportSemaphoreFdInfoKHR* toTransform)
 {
@@ -2738,11 +5382,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSemaphoreGetFdInfoKHR(
+void transform_fromhost_VkImportSemaphoreFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkSemaphoreGetFdInfoKHR* toTransform)
 {
@@ -2750,13 +5406,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_push_descriptor
-void transform_VkPhysicalDevicePushDescriptorPropertiesKHR(
+void transform_tohost_VkPhysicalDevicePushDescriptorPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDevicePushDescriptorPropertiesKHR* toTransform)
 {
@@ -2764,7 +5432,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePushDescriptorPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePushDescriptorPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -2772,17 +5452,27 @@
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
-void transform_VkRectLayerKHR(
+void transform_tohost_VkRectLayerKHR(
     ResourceTracker* resourceTracker,
     VkRectLayerKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
 }
 
-void transform_VkPresentRegionKHR(
+void transform_fromhost_VkRectLayerKHR(
+    ResourceTracker* resourceTracker,
+    VkRectLayerKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkPresentRegionKHR(
     ResourceTracker* resourceTracker,
     VkPresentRegionKHR* toTransform)
 {
@@ -2792,12 +5482,27 @@
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
         {
-            transform_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+            transform_tohost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
         }
     }
 }
 
-void transform_VkPresentRegionsKHR(
+void transform_fromhost_VkPresentRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentRegionKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pRectangles)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
+        {
+            transform_fromhost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+        }
+    }
+}
+
+void transform_tohost_VkPresentRegionsKHR(
     ResourceTracker* resourceTracker,
     VkPresentRegionsKHR* toTransform)
 {
@@ -2805,13 +5510,32 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pRegions)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
         {
-            transform_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+            transform_tohost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPresentRegionsKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentRegionsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pRegions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        {
+            transform_fromhost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
         }
     }
 }
@@ -2820,7 +5544,7 @@
 #ifdef VK_KHR_descriptor_update_template
 #endif
 #ifdef VK_KHR_create_renderpass2
-void transform_VkAttachmentDescription2KHR(
+void transform_tohost_VkAttachmentDescription2KHR(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription2KHR* toTransform)
 {
@@ -2828,11 +5552,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkAttachmentReference2KHR(
+void transform_fromhost_VkAttachmentDescription2KHR(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentReference2KHR(
     ResourceTracker* resourceTracker,
     VkAttachmentReference2KHR* toTransform)
 {
@@ -2840,11 +5576,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSubpassDescription2KHR(
+void transform_fromhost_VkAttachmentReference2KHR(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubpassDescription2KHR(
     ResourceTracker* resourceTracker,
     VkSubpassDescription2KHR* toTransform)
 {
@@ -2852,36 +5600,73 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pInputAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pInputAttachments + i));
+            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pInputAttachments + i));
         }
     }
     if (toTransform->pColorAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pColorAttachments + i));
+            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pColorAttachments + i));
         }
     }
     if (toTransform->pResolveAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
         {
-            transform_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pResolveAttachments + i));
+            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pResolveAttachments + i));
         }
     }
     if (toTransform->pDepthStencilAttachment)
     {
-        transform_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pDepthStencilAttachment));
+        transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pDepthStencilAttachment));
     }
 }
 
-void transform_VkSubpassDependency2KHR(
+void transform_fromhost_VkSubpassDescription2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pInputAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pInputAttachments + i));
+        }
+    }
+    if (toTransform->pColorAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pColorAttachments + i));
+        }
+    }
+    if (toTransform->pResolveAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pResolveAttachments + i));
+        }
+    }
+    if (toTransform->pDepthStencilAttachment)
+    {
+        transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pDepthStencilAttachment));
+    }
+}
+
+void transform_tohost_VkSubpassDependency2KHR(
     ResourceTracker* resourceTracker,
     VkSubpassDependency2KHR* toTransform)
 {
@@ -2889,11 +5674,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkRenderPassCreateInfo2KHR(
+void transform_fromhost_VkSubpassDependency2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRenderPassCreateInfo2KHR(
     ResourceTracker* resourceTracker,
     VkRenderPassCreateInfo2KHR* toTransform)
 {
@@ -2901,32 +5698,65 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pAttachments)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
         {
-            transform_VkAttachmentDescription2KHR(resourceTracker, (VkAttachmentDescription2KHR*)(toTransform->pAttachments + i));
+            transform_tohost_VkAttachmentDescription2KHR(resourceTracker, (VkAttachmentDescription2KHR*)(toTransform->pAttachments + i));
         }
     }
     if (toTransform->pSubpasses)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
         {
-            transform_VkSubpassDescription2KHR(resourceTracker, (VkSubpassDescription2KHR*)(toTransform->pSubpasses + i));
+            transform_tohost_VkSubpassDescription2KHR(resourceTracker, (VkSubpassDescription2KHR*)(toTransform->pSubpasses + i));
         }
     }
     if (toTransform->pDependencies)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
         {
-            transform_VkSubpassDependency2KHR(resourceTracker, (VkSubpassDependency2KHR*)(toTransform->pDependencies + i));
+            transform_tohost_VkSubpassDependency2KHR(resourceTracker, (VkSubpassDependency2KHR*)(toTransform->pDependencies + i));
         }
     }
 }
 
-void transform_VkSubpassBeginInfoKHR(
+void transform_fromhost_VkRenderPassCreateInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        {
+            transform_fromhost_VkAttachmentDescription2KHR(resourceTracker, (VkAttachmentDescription2KHR*)(toTransform->pAttachments + i));
+        }
+    }
+    if (toTransform->pSubpasses)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+        {
+            transform_fromhost_VkSubpassDescription2KHR(resourceTracker, (VkSubpassDescription2KHR*)(toTransform->pSubpasses + i));
+        }
+    }
+    if (toTransform->pDependencies)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+        {
+            transform_fromhost_VkSubpassDependency2KHR(resourceTracker, (VkSubpassDependency2KHR*)(toTransform->pDependencies + i));
+        }
+    }
+}
+
+void transform_tohost_VkSubpassBeginInfoKHR(
     ResourceTracker* resourceTracker,
     VkSubpassBeginInfoKHR* toTransform)
 {
@@ -2934,11 +5764,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSubpassEndInfoKHR(
+void transform_fromhost_VkSubpassBeginInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubpassEndInfoKHR(
     ResourceTracker* resourceTracker,
     VkSubpassEndInfoKHR* toTransform)
 {
@@ -2946,13 +5788,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSubpassEndInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
-void transform_VkSharedPresentSurfaceCapabilitiesKHR(
+void transform_tohost_VkSharedPresentSurfaceCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkSharedPresentSurfaceCapabilitiesKHR* toTransform)
 {
@@ -2960,7 +5814,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSharedPresentSurfaceCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSharedPresentSurfaceCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -2970,7 +5836,7 @@
 #ifdef VK_KHR_external_fence
 #endif
 #ifdef VK_KHR_external_fence_win32
-void transform_VkImportFenceWin32HandleInfoKHR(
+void transform_tohost_VkImportFenceWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportFenceWin32HandleInfoKHR* toTransform)
 {
@@ -2978,11 +5844,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportFenceWin32HandleInfoKHR(
+void transform_fromhost_VkImportFenceWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportFenceWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportFenceWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportFenceWin32HandleInfoKHR* toTransform)
 {
@@ -2990,11 +5868,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkFenceGetWin32HandleInfoKHR(
+void transform_fromhost_VkExportFenceWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportFenceWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFenceGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkFenceGetWin32HandleInfoKHR* toTransform)
 {
@@ -3002,13 +5892,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFenceGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFenceGetWin32HandleInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_KHR_external_fence_fd
-void transform_VkImportFenceFdInfoKHR(
+void transform_tohost_VkImportFenceFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportFenceFdInfoKHR* toTransform)
 {
@@ -3016,11 +5918,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkFenceGetFdInfoKHR(
+void transform_fromhost_VkImportFenceFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportFenceFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFenceGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkFenceGetFdInfoKHR* toTransform)
 {
@@ -3028,7 +5942,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFenceGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFenceGetFdInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3036,7 +5962,7 @@
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
-void transform_VkPhysicalDeviceSurfaceInfo2KHR(
+void transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSurfaceInfo2KHR* toTransform)
 {
@@ -3044,11 +5970,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSurfaceCapabilities2KHR(
+void transform_fromhost_VkPhysicalDeviceSurfaceInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSurfaceInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSurfaceCapabilities2KHR(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilities2KHR* toTransform)
 {
@@ -3056,12 +5994,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkSurfaceCapabilitiesKHR(resourceTracker, (VkSurfaceCapabilitiesKHR*)(&toTransform->surfaceCapabilities));
+    transform_tohost_VkSurfaceCapabilitiesKHR(resourceTracker, (VkSurfaceCapabilitiesKHR*)(&toTransform->surfaceCapabilities));
 }
 
-void transform_VkSurfaceFormat2KHR(
+void transform_fromhost_VkSurfaceCapabilities2KHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilities2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSurfaceCapabilitiesKHR(resourceTracker, (VkSurfaceCapabilitiesKHR*)(&toTransform->surfaceCapabilities));
+}
+
+void transform_tohost_VkSurfaceFormat2KHR(
     ResourceTracker* resourceTracker,
     VkSurfaceFormat2KHR* toTransform)
 {
@@ -3069,16 +6020,29 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkSurfaceFormatKHR(resourceTracker, (VkSurfaceFormatKHR*)(&toTransform->surfaceFormat));
+    transform_tohost_VkSurfaceFormatKHR(resourceTracker, (VkSurfaceFormatKHR*)(&toTransform->surfaceFormat));
+}
+
+void transform_fromhost_VkSurfaceFormat2KHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFormat2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSurfaceFormatKHR(resourceTracker, (VkSurfaceFormatKHR*)(&toTransform->surfaceFormat));
 }
 
 #endif
 #ifdef VK_KHR_variable_pointers
 #endif
 #ifdef VK_KHR_get_display_properties2
-void transform_VkDisplayProperties2KHR(
+void transform_tohost_VkDisplayProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayProperties2KHR* toTransform)
 {
@@ -3086,12 +6050,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkDisplayPropertiesKHR(resourceTracker, (VkDisplayPropertiesKHR*)(&toTransform->displayProperties));
+    transform_tohost_VkDisplayPropertiesKHR(resourceTracker, (VkDisplayPropertiesKHR*)(&toTransform->displayProperties));
 }
 
-void transform_VkDisplayPlaneProperties2KHR(
+void transform_fromhost_VkDisplayProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayProperties2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDisplayPropertiesKHR(resourceTracker, (VkDisplayPropertiesKHR*)(&toTransform->displayProperties));
+}
+
+void transform_tohost_VkDisplayPlaneProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneProperties2KHR* toTransform)
 {
@@ -3099,12 +6076,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkDisplayPlanePropertiesKHR(resourceTracker, (VkDisplayPlanePropertiesKHR*)(&toTransform->displayPlaneProperties));
+    transform_tohost_VkDisplayPlanePropertiesKHR(resourceTracker, (VkDisplayPlanePropertiesKHR*)(&toTransform->displayPlaneProperties));
 }
 
-void transform_VkDisplayModeProperties2KHR(
+void transform_fromhost_VkDisplayPlaneProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneProperties2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDisplayPlanePropertiesKHR(resourceTracker, (VkDisplayPlanePropertiesKHR*)(&toTransform->displayPlaneProperties));
+}
+
+void transform_tohost_VkDisplayModeProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeProperties2KHR* toTransform)
 {
@@ -3112,12 +6102,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkDisplayModePropertiesKHR(resourceTracker, (VkDisplayModePropertiesKHR*)(&toTransform->displayModeProperties));
+    transform_tohost_VkDisplayModePropertiesKHR(resourceTracker, (VkDisplayModePropertiesKHR*)(&toTransform->displayModeProperties));
 }
 
-void transform_VkDisplayPlaneInfo2KHR(
+void transform_fromhost_VkDisplayModeProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeProperties2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDisplayModePropertiesKHR(resourceTracker, (VkDisplayModePropertiesKHR*)(&toTransform->displayModeProperties));
+}
+
+void transform_tohost_VkDisplayPlaneInfo2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneInfo2KHR* toTransform)
 {
@@ -3125,11 +6128,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDisplayPlaneCapabilities2KHR(
+void transform_fromhost_VkDisplayPlaneInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDisplayPlaneCapabilities2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilities2KHR* toTransform)
 {
@@ -3137,9 +6152,22 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkDisplayPlaneCapabilitiesKHR(resourceTracker, (VkDisplayPlaneCapabilitiesKHR*)(&toTransform->capabilities));
+    transform_tohost_VkDisplayPlaneCapabilitiesKHR(resourceTracker, (VkDisplayPlaneCapabilitiesKHR*)(&toTransform->capabilities));
+}
+
+void transform_fromhost_VkDisplayPlaneCapabilities2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneCapabilities2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDisplayPlaneCapabilitiesKHR(resourceTracker, (VkDisplayPlaneCapabilitiesKHR*)(&toTransform->capabilities));
 }
 
 #endif
@@ -3152,7 +6180,7 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void transform_VkImageFormatListCreateInfoKHR(
+void transform_tohost_VkImageFormatListCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkImageFormatListCreateInfoKHR* toTransform)
 {
@@ -3160,7 +6188,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageFormatListCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3174,7 +6214,7 @@
 #ifdef VK_KHR_draw_indirect_count
 #endif
 #ifdef VK_KHR_8bit_storage
-void transform_VkPhysicalDevice8BitStorageFeaturesKHR(
+void transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDevice8BitStorageFeaturesKHR* toTransform)
 {
@@ -3182,13 +6222,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_ANDROID_native_buffer
-void transform_VkNativeBufferANDROID(
+void transform_tohost_VkNativeBufferANDROID(
     ResourceTracker* resourceTracker,
     VkNativeBufferANDROID* toTransform)
 {
@@ -3196,13 +6248,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkNativeBufferANDROID(
+    ResourceTracker* resourceTracker,
+    VkNativeBufferANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_debug_report
-void transform_VkDebugReportCallbackCreateInfoEXT(
+void transform_tohost_VkDebugReportCallbackCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugReportCallbackCreateInfoEXT* toTransform)
 {
@@ -3210,7 +6274,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDebugReportCallbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugReportCallbackCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3222,7 +6298,7 @@
 #ifdef VK_IMG_filter_cubic
 #endif
 #ifdef VK_AMD_rasterization_order
-void transform_VkPipelineRasterizationStateRasterizationOrderAMD(
+void transform_tohost_VkPipelineRasterizationStateRasterizationOrderAMD(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationStateRasterizationOrderAMD* toTransform)
 {
@@ -3230,7 +6306,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationStateRasterizationOrderAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateRasterizationOrderAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3240,7 +6328,7 @@
 #ifdef VK_AMD_shader_explicit_vertex_parameter
 #endif
 #ifdef VK_EXT_debug_marker
-void transform_VkDebugMarkerObjectNameInfoEXT(
+void transform_tohost_VkDebugMarkerObjectNameInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerObjectNameInfoEXT* toTransform)
 {
@@ -3248,11 +6336,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDebugMarkerObjectTagInfoEXT(
+void transform_fromhost_VkDebugMarkerObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerObjectNameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDebugMarkerObjectTagInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerObjectTagInfoEXT* toTransform)
 {
@@ -3260,11 +6360,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDebugMarkerMarkerInfoEXT(
+void transform_fromhost_VkDebugMarkerObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerObjectTagInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDebugMarkerMarkerInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerMarkerInfoEXT* toTransform)
 {
@@ -3272,7 +6384,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDebugMarkerMarkerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerMarkerInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3280,7 +6404,7 @@
 #ifdef VK_AMD_gcn_shader
 #endif
 #ifdef VK_NV_dedicated_allocation
-void transform_VkDedicatedAllocationImageCreateInfoNV(
+void transform_tohost_VkDedicatedAllocationImageCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationImageCreateInfoNV* toTransform)
 {
@@ -3288,11 +6412,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDedicatedAllocationBufferCreateInfoNV(
+void transform_fromhost_VkDedicatedAllocationImageCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationImageCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDedicatedAllocationBufferCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationBufferCreateInfoNV* toTransform)
 {
@@ -3300,11 +6436,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDedicatedAllocationMemoryAllocateInfoNV(
+void transform_fromhost_VkDedicatedAllocationBufferCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationBufferCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDedicatedAllocationMemoryAllocateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationMemoryAllocateInfoNV* toTransform)
 {
@@ -3312,7 +6460,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDedicatedAllocationMemoryAllocateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationMemoryAllocateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3326,7 +6486,7 @@
 #ifdef VK_AMD_shader_ballot
 #endif
 #ifdef VK_AMD_texture_gather_bias_lod
-void transform_VkTextureLODGatherFormatPropertiesAMD(
+void transform_tohost_VkTextureLODGatherFormatPropertiesAMD(
     ResourceTracker* resourceTracker,
     VkTextureLODGatherFormatPropertiesAMD* toTransform)
 {
@@ -3334,13 +6494,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkTextureLODGatherFormatPropertiesAMD(
+    ResourceTracker* resourceTracker,
+    VkTextureLODGatherFormatPropertiesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_AMD_shader_info
-void transform_VkShaderResourceUsageAMD(
+void transform_tohost_VkShaderResourceUsageAMD(
     ResourceTracker* resourceTracker,
     VkShaderResourceUsageAMD* toTransform)
 {
@@ -3348,13 +6520,30 @@
     (void)toTransform;
 }
 
-void transform_VkShaderStatisticsInfoAMD(
+void transform_fromhost_VkShaderResourceUsageAMD(
+    ResourceTracker* resourceTracker,
+    VkShaderResourceUsageAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkShaderStatisticsInfoAMD(
     ResourceTracker* resourceTracker,
     VkShaderStatisticsInfoAMD* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkShaderResourceUsageAMD(resourceTracker, (VkShaderResourceUsageAMD*)(&toTransform->resourceUsage));
+    transform_tohost_VkShaderResourceUsageAMD(resourceTracker, (VkShaderResourceUsageAMD*)(&toTransform->resourceUsage));
+}
+
+void transform_fromhost_VkShaderStatisticsInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkShaderStatisticsInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkShaderResourceUsageAMD(resourceTracker, (VkShaderResourceUsageAMD*)(&toTransform->resourceUsage));
 }
 
 #endif
@@ -3363,18 +6552,27 @@
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
-void transform_VkExternalImageFormatPropertiesNV(
+void transform_tohost_VkExternalImageFormatPropertiesNV(
     ResourceTracker* resourceTracker,
     VkExternalImageFormatPropertiesNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
+    transform_tohost_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
+}
+
+void transform_fromhost_VkExternalImageFormatPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkExternalImageFormatPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageFormatProperties(resourceTracker, (VkImageFormatProperties*)(&toTransform->imageFormatProperties));
 }
 
 #endif
 #ifdef VK_NV_external_memory
-void transform_VkExternalMemoryImageCreateInfoNV(
+void transform_tohost_VkExternalMemoryImageCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkExternalMemoryImageCreateInfoNV* toTransform)
 {
@@ -3382,11 +6580,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportMemoryAllocateInfoNV(
+void transform_fromhost_VkExternalMemoryImageCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryImageCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportMemoryAllocateInfoNV(
     ResourceTracker* resourceTracker,
     VkExportMemoryAllocateInfoNV* toTransform)
 {
@@ -3394,13 +6604,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkExportMemoryAllocateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryAllocateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NV_external_memory_win32
-void transform_VkImportMemoryWin32HandleInfoNV(
+void transform_tohost_VkImportMemoryWin32HandleInfoNV(
     ResourceTracker* resourceTracker,
     VkImportMemoryWin32HandleInfoNV* toTransform)
 {
@@ -3408,11 +6630,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExportMemoryWin32HandleInfoNV(
+void transform_fromhost_VkImportMemoryWin32HandleInfoNV(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryWin32HandleInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExportMemoryWin32HandleInfoNV(
     ResourceTracker* resourceTracker,
     VkExportMemoryWin32HandleInfoNV* toTransform)
 {
@@ -3420,28 +6654,53 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkExportMemoryWin32HandleInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryWin32HandleInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NV_win32_keyed_mutex
-void transform_VkWin32KeyedMutexAcquireReleaseInfoNV(
+void transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoNV(
     ResourceTracker* resourceTracker,
     VkWin32KeyedMutexAcquireReleaseInfoNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoNV(
+    ResourceTracker* resourceTracker,
+    VkWin32KeyedMutexAcquireReleaseInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_validation_flags
-void transform_VkValidationFlagsEXT(
+void transform_tohost_VkValidationFlagsEXT(
     ResourceTracker* resourceTracker,
     VkValidationFlagsEXT* toTransform)
 {
@@ -3449,13 +6708,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkValidationFlagsEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFlagsEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NN_vi_surface
-void transform_VkViSurfaceCreateInfoNN(
+void transform_tohost_VkViSurfaceCreateInfoNN(
     ResourceTracker* resourceTracker,
     VkViSurfaceCreateInfoNN* toTransform)
 {
@@ -3463,7 +6734,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkViSurfaceCreateInfoNN(
+    ResourceTracker* resourceTracker,
+    VkViSurfaceCreateInfoNN* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3473,7 +6756,7 @@
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
 #ifdef VK_EXT_conditional_rendering
-void transform_VkConditionalRenderingBeginInfoEXT(
+void transform_tohost_VkConditionalRenderingBeginInfoEXT(
     ResourceTracker* resourceTracker,
     VkConditionalRenderingBeginInfoEXT* toTransform)
 {
@@ -3481,11 +6764,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
+void transform_fromhost_VkConditionalRenderingBeginInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkConditionalRenderingBeginInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceConditionalRenderingFeaturesEXT* toTransform)
 {
@@ -3493,11 +6788,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
+void transform_fromhost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceConditionalRenderingFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
     ResourceTracker* resourceTracker,
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* toTransform)
 {
@@ -3505,13 +6812,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceConditionalRenderingInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NVX_device_generated_commands
-void transform_VkDeviceGeneratedCommandsFeaturesNVX(
+void transform_tohost_VkDeviceGeneratedCommandsFeaturesNVX(
     ResourceTracker* resourceTracker,
     VkDeviceGeneratedCommandsFeaturesNVX* toTransform)
 {
@@ -3519,11 +6838,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceGeneratedCommandsLimitsNVX(
+void transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(
+    ResourceTracker* resourceTracker,
+    VkDeviceGeneratedCommandsFeaturesNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceGeneratedCommandsLimitsNVX(
     ResourceTracker* resourceTracker,
     VkDeviceGeneratedCommandsLimitsNVX* toTransform)
 {
@@ -3531,11 +6862,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkIndirectCommandsTokenNVX(
+void transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(
+    ResourceTracker* resourceTracker,
+    VkDeviceGeneratedCommandsLimitsNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkIndirectCommandsTokenNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsTokenNVX* toTransform)
 {
@@ -3543,7 +6886,15 @@
     (void)toTransform;
 }
 
-void transform_VkIndirectCommandsLayoutTokenNVX(
+void transform_fromhost_VkIndirectCommandsTokenNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsTokenNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkIndirectCommandsLayoutTokenNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsLayoutTokenNVX* toTransform)
 {
@@ -3551,7 +6902,15 @@
     (void)toTransform;
 }
 
-void transform_VkIndirectCommandsLayoutCreateInfoNVX(
+void transform_fromhost_VkIndirectCommandsLayoutTokenNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsLayoutCreateInfoNVX* toTransform)
 {
@@ -3559,18 +6918,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pTokens)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
         {
-            transform_VkIndirectCommandsLayoutTokenNVX(resourceTracker, (VkIndirectCommandsLayoutTokenNVX*)(toTransform->pTokens + i));
+            transform_tohost_VkIndirectCommandsLayoutTokenNVX(resourceTracker, (VkIndirectCommandsLayoutTokenNVX*)(toTransform->pTokens + i));
         }
     }
 }
 
-void transform_VkCmdProcessCommandsInfoNVX(
+void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pTokens)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
+        {
+            transform_fromhost_VkIndirectCommandsLayoutTokenNVX(resourceTracker, (VkIndirectCommandsLayoutTokenNVX*)(toTransform->pTokens + i));
+        }
+    }
+}
+
+void transform_tohost_VkCmdProcessCommandsInfoNVX(
     ResourceTracker* resourceTracker,
     VkCmdProcessCommandsInfoNVX* toTransform)
 {
@@ -3578,18 +6956,37 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pIndirectCommandsTokens)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->indirectCommandsTokenCount; ++i)
         {
-            transform_VkIndirectCommandsTokenNVX(resourceTracker, (VkIndirectCommandsTokenNVX*)(toTransform->pIndirectCommandsTokens + i));
+            transform_tohost_VkIndirectCommandsTokenNVX(resourceTracker, (VkIndirectCommandsTokenNVX*)(toTransform->pIndirectCommandsTokens + i));
         }
     }
 }
 
-void transform_VkCmdReserveSpaceForCommandsInfoNVX(
+void transform_fromhost_VkCmdProcessCommandsInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCmdProcessCommandsInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pIndirectCommandsTokens)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->indirectCommandsTokenCount; ++i)
+        {
+            transform_fromhost_VkIndirectCommandsTokenNVX(resourceTracker, (VkIndirectCommandsTokenNVX*)(toTransform->pIndirectCommandsTokens + i));
+        }
+    }
+}
+
+void transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(
     ResourceTracker* resourceTracker,
     VkCmdReserveSpaceForCommandsInfoNVX* toTransform)
 {
@@ -3597,11 +6994,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkObjectTableCreateInfoNVX(
+void transform_fromhost_VkCmdReserveSpaceForCommandsInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCmdReserveSpaceForCommandsInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkObjectTableCreateInfoNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableCreateInfoNVX* toTransform)
 {
@@ -3609,11 +7018,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkObjectTableEntryNVX(
+void transform_fromhost_VkObjectTableCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkObjectTableEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableEntryNVX* toTransform)
 {
@@ -3621,7 +7042,15 @@
     (void)toTransform;
 }
 
-void transform_VkObjectTablePipelineEntryNVX(
+void transform_fromhost_VkObjectTableEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkObjectTablePipelineEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTablePipelineEntryNVX* toTransform)
 {
@@ -3629,7 +7058,15 @@
     (void)toTransform;
 }
 
-void transform_VkObjectTableDescriptorSetEntryNVX(
+void transform_fromhost_VkObjectTablePipelineEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTablePipelineEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkObjectTableDescriptorSetEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableDescriptorSetEntryNVX* toTransform)
 {
@@ -3637,7 +7074,15 @@
     (void)toTransform;
 }
 
-void transform_VkObjectTableVertexBufferEntryNVX(
+void transform_fromhost_VkObjectTableDescriptorSetEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableDescriptorSetEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkObjectTableVertexBufferEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableVertexBufferEntryNVX* toTransform)
 {
@@ -3645,7 +7090,15 @@
     (void)toTransform;
 }
 
-void transform_VkObjectTableIndexBufferEntryNVX(
+void transform_fromhost_VkObjectTableVertexBufferEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableVertexBufferEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkObjectTableIndexBufferEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableIndexBufferEntryNVX* toTransform)
 {
@@ -3653,7 +7106,23 @@
     (void)toTransform;
 }
 
-void transform_VkObjectTablePushConstantEntryNVX(
+void transform_fromhost_VkObjectTableIndexBufferEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableIndexBufferEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkObjectTablePushConstantEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTablePushConstantEntryNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkObjectTablePushConstantEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTablePushConstantEntryNVX* toTransform)
 {
@@ -3663,7 +7132,7 @@
 
 #endif
 #ifdef VK_NV_clip_space_w_scaling
-void transform_VkViewportWScalingNV(
+void transform_tohost_VkViewportWScalingNV(
     ResourceTracker* resourceTracker,
     VkViewportWScalingNV* toTransform)
 {
@@ -3671,7 +7140,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineViewportWScalingStateCreateInfoNV(
+void transform_fromhost_VkViewportWScalingNV(
+    ResourceTracker* resourceTracker,
+    VkViewportWScalingNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineViewportWScalingStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineViewportWScalingStateCreateInfoNV* toTransform)
 {
@@ -3679,13 +7156,32 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pViewportWScalings)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
         {
-            transform_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+            transform_tohost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineViewportWScalingStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportWScalingStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pViewportWScalings)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        {
+            transform_fromhost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
         }
     }
 }
@@ -3696,7 +7192,7 @@
 #ifdef VK_EXT_acquire_xlib_display
 #endif
 #ifdef VK_EXT_display_surface_counter
-void transform_VkSurfaceCapabilities2EXT(
+void transform_tohost_VkSurfaceCapabilities2EXT(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilities2EXT* toTransform)
 {
@@ -3704,16 +7200,31 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
+}
+
+void transform_fromhost_VkSurfaceCapabilities2EXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilities2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->currentExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minImageExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxImageExtent));
 }
 
 #endif
 #ifdef VK_EXT_display_control
-void transform_VkDisplayPowerInfoEXT(
+void transform_tohost_VkDisplayPowerInfoEXT(
     ResourceTracker* resourceTracker,
     VkDisplayPowerInfoEXT* toTransform)
 {
@@ -3721,11 +7232,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDeviceEventInfoEXT(
+void transform_fromhost_VkDisplayPowerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDisplayPowerInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceEventInfoEXT(
     ResourceTracker* resourceTracker,
     VkDeviceEventInfoEXT* toTransform)
 {
@@ -3733,11 +7256,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDisplayEventInfoEXT(
+void transform_fromhost_VkDeviceEventInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceEventInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDisplayEventInfoEXT(
     ResourceTracker* resourceTracker,
     VkDisplayEventInfoEXT* toTransform)
 {
@@ -3745,11 +7280,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkSwapchainCounterCreateInfoEXT(
+void transform_fromhost_VkDisplayEventInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDisplayEventInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSwapchainCounterCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkSwapchainCounterCreateInfoEXT* toTransform)
 {
@@ -3757,13 +7304,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSwapchainCounterCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSwapchainCounterCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_GOOGLE_display_timing
-void transform_VkRefreshCycleDurationGOOGLE(
+void transform_tohost_VkRefreshCycleDurationGOOGLE(
     ResourceTracker* resourceTracker,
     VkRefreshCycleDurationGOOGLE* toTransform)
 {
@@ -3771,7 +7330,15 @@
     (void)toTransform;
 }
 
-void transform_VkPastPresentationTimingGOOGLE(
+void transform_fromhost_VkRefreshCycleDurationGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkRefreshCycleDurationGOOGLE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPastPresentationTimingGOOGLE(
     ResourceTracker* resourceTracker,
     VkPastPresentationTimingGOOGLE* toTransform)
 {
@@ -3779,7 +7346,15 @@
     (void)toTransform;
 }
 
-void transform_VkPresentTimeGOOGLE(
+void transform_fromhost_VkPastPresentationTimingGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPastPresentationTimingGOOGLE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPresentTimeGOOGLE(
     ResourceTracker* resourceTracker,
     VkPresentTimeGOOGLE* toTransform)
 {
@@ -3787,7 +7362,15 @@
     (void)toTransform;
 }
 
-void transform_VkPresentTimesInfoGOOGLE(
+void transform_fromhost_VkPresentTimeGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPresentTimeGOOGLE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPresentTimesInfoGOOGLE(
     ResourceTracker* resourceTracker,
     VkPresentTimesInfoGOOGLE* toTransform)
 {
@@ -3795,13 +7378,32 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pTimes)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
         {
-            transform_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+            transform_tohost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPresentTimesInfoGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPresentTimesInfoGOOGLE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pTimes)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        {
+            transform_fromhost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
         }
     }
 }
@@ -3814,7 +7416,7 @@
 #ifdef VK_NV_viewport_array2
 #endif
 #ifdef VK_NVX_multiview_per_view_attributes
-void transform_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
+void transform_tohost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* toTransform)
 {
@@ -3822,13 +7424,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NV_viewport_swizzle
-void transform_VkViewportSwizzleNV(
+void transform_tohost_VkViewportSwizzleNV(
     ResourceTracker* resourceTracker,
     VkViewportSwizzleNV* toTransform)
 {
@@ -3836,7 +7450,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineViewportSwizzleStateCreateInfoNV(
+void transform_fromhost_VkViewportSwizzleNV(
+    ResourceTracker* resourceTracker,
+    VkViewportSwizzleNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineViewportSwizzleStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineViewportSwizzleStateCreateInfoNV* toTransform)
 {
@@ -3844,20 +7466,39 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pViewportSwizzles)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
         {
-            transform_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+            transform_tohost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineViewportSwizzleStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportSwizzleStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pViewportSwizzles)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        {
+            transform_fromhost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
         }
     }
 }
 
 #endif
 #ifdef VK_EXT_discard_rectangles
-void transform_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
+void transform_tohost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDiscardRectanglePropertiesEXT* toTransform)
 {
@@ -3865,11 +7506,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineDiscardRectangleStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiscardRectanglePropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineDiscardRectangleStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineDiscardRectangleStateCreateInfoEXT* toTransform)
 {
@@ -3877,20 +7530,39 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pDiscardRectangles)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
         {
-            transform_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineDiscardRectangleStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineDiscardRectangleStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pDiscardRectangles)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
+        {
+            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
         }
     }
 }
 
 #endif
 #ifdef VK_EXT_conservative_rasterization
-void transform_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
+void transform_tohost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* toTransform)
 {
@@ -3898,11 +7570,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineRasterizationConservativeStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceConservativeRasterizationPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationConservativeStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationConservativeStateCreateInfoEXT* toTransform)
 {
@@ -3910,7 +7594,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationConservativeStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationConservativeStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3918,7 +7614,7 @@
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
-void transform_VkXYColorEXT(
+void transform_tohost_VkXYColorEXT(
     ResourceTracker* resourceTracker,
     VkXYColorEXT* toTransform)
 {
@@ -3926,7 +7622,15 @@
     (void)toTransform;
 }
 
-void transform_VkHdrMetadataEXT(
+void transform_fromhost_VkXYColorEXT(
+    ResourceTracker* resourceTracker,
+    VkXYColorEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkHdrMetadataEXT(
     ResourceTracker* resourceTracker,
     VkHdrMetadataEXT* toTransform)
 {
@@ -3934,17 +7638,33 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryRed));
-    transform_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryGreen));
-    transform_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryBlue));
-    transform_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->whitePoint));
+    transform_tohost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryRed));
+    transform_tohost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryGreen));
+    transform_tohost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryBlue));
+    transform_tohost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->whitePoint));
+}
+
+void transform_fromhost_VkHdrMetadataEXT(
+    ResourceTracker* resourceTracker,
+    VkHdrMetadataEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryRed));
+    transform_fromhost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryGreen));
+    transform_fromhost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->displayPrimaryBlue));
+    transform_fromhost_VkXYColorEXT(resourceTracker, (VkXYColorEXT*)(&toTransform->whitePoint));
 }
 
 #endif
 #ifdef VK_MVK_ios_surface
-void transform_VkIOSSurfaceCreateInfoMVK(
+void transform_tohost_VkIOSSurfaceCreateInfoMVK(
     ResourceTracker* resourceTracker,
     VkIOSSurfaceCreateInfoMVK* toTransform)
 {
@@ -3952,13 +7672,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkIOSSurfaceCreateInfoMVK(
+    ResourceTracker* resourceTracker,
+    VkIOSSurfaceCreateInfoMVK* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_MVK_macos_surface
-void transform_VkMacOSSurfaceCreateInfoMVK(
+void transform_tohost_VkMacOSSurfaceCreateInfoMVK(
     ResourceTracker* resourceTracker,
     VkMacOSSurfaceCreateInfoMVK* toTransform)
 {
@@ -3966,7 +7698,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMacOSSurfaceCreateInfoMVK(
+    ResourceTracker* resourceTracker,
+    VkMacOSSurfaceCreateInfoMVK* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -3976,7 +7720,7 @@
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void transform_VkDebugUtilsObjectNameInfoEXT(
+void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsObjectNameInfoEXT* toTransform)
 {
@@ -3984,11 +7728,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDebugUtilsObjectTagInfoEXT(
+void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsObjectTagInfoEXT* toTransform)
 {
@@ -3996,11 +7752,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDebugUtilsLabelEXT(
+void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDebugUtilsLabelEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsLabelEXT* toTransform)
 {
@@ -4008,11 +7776,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDebugUtilsMessengerCallbackDataEXT(
+void transform_fromhost_VkDebugUtilsLabelEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsLabelEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCallbackDataEXT* toTransform)
 {
@@ -4020,32 +7800,65 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pQueueLabels)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
         {
-            transform_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+            transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
         }
     }
     if (toTransform->pCmdBufLabels)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
         {
-            transform_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+            transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
         }
     }
     if (toTransform->pObjects)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
         {
-            transform_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+            transform_tohost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
         }
     }
 }
 
-void transform_VkDebugUtilsMessengerCreateInfoEXT(
+void transform_fromhost_VkDebugUtilsMessengerCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsMessengerCallbackDataEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pQueueLabels)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
+        {
+            transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+        }
+    }
+    if (toTransform->pCmdBufLabels)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
+        {
+            transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+        }
+    }
+    if (toTransform->pObjects)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
+        {
+            transform_fromhost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+        }
+    }
+}
+
+void transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCreateInfoEXT* toTransform)
 {
@@ -4053,13 +7866,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDebugUtilsMessengerCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsMessengerCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
-void transform_VkAndroidHardwareBufferUsageANDROID(
+void transform_tohost_VkAndroidHardwareBufferUsageANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferUsageANDROID* toTransform)
 {
@@ -4067,24 +7892,49 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkAndroidHardwareBufferPropertiesANDROID(
+void transform_fromhost_VkAndroidHardwareBufferUsageANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferUsageANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAndroidHardwareBufferPropertiesANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferPropertiesANDROID* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkAndroidHardwareBufferFormatPropertiesANDROID(
+void transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferPropertiesANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAndroidHardwareBufferFormatPropertiesANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferFormatPropertiesANDROID* toTransform)
 {
@@ -4092,12 +7942,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
 }
 
-void transform_VkImportAndroidHardwareBufferInfoANDROID(
+void transform_fromhost_VkAndroidHardwareBufferFormatPropertiesANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatPropertiesANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+}
+
+void transform_tohost_VkImportAndroidHardwareBufferInfoANDROID(
     ResourceTracker* resourceTracker,
     VkImportAndroidHardwareBufferInfoANDROID* toTransform)
 {
@@ -4105,24 +7968,49 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryGetAndroidHardwareBufferInfoANDROID(
+void transform_fromhost_VkImportAndroidHardwareBufferInfoANDROID(
+    ResourceTracker* resourceTracker,
+    VkImportAndroidHardwareBufferInfoANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryGetAndroidHardwareBufferInfoANDROID(
     ResourceTracker* resourceTracker,
     VkMemoryGetAndroidHardwareBufferInfoANDROID* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkExternalFormatANDROID(
+void transform_fromhost_VkMemoryGetAndroidHardwareBufferInfoANDROID(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetAndroidHardwareBufferInfoANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkExternalFormatANDROID(
     ResourceTracker* resourceTracker,
     VkExternalFormatANDROID* toTransform)
 {
@@ -4130,13 +8018,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkExternalFormatANDROID(
+    ResourceTracker* resourceTracker,
+    VkExternalFormatANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void transform_VkSamplerReductionModeCreateInfoEXT(
+void transform_tohost_VkSamplerReductionModeCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkSamplerReductionModeCreateInfoEXT* toTransform)
 {
@@ -4144,11 +8044,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
+void transform_fromhost_VkSamplerReductionModeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform)
 {
@@ -4156,7 +8068,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -4170,7 +8094,7 @@
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
-void transform_VkSampleLocationEXT(
+void transform_tohost_VkSampleLocationEXT(
     ResourceTracker* resourceTracker,
     VkSampleLocationEXT* toTransform)
 {
@@ -4178,7 +8102,15 @@
     (void)toTransform;
 }
 
-void transform_VkSampleLocationsInfoEXT(
+void transform_fromhost_VkSampleLocationEXT(
+    ResourceTracker* resourceTracker,
+    VkSampleLocationEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSampleLocationsInfoEXT(
     ResourceTracker* resourceTracker,
     VkSampleLocationsInfoEXT* toTransform)
 {
@@ -4186,37 +8118,75 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->sampleLocationGridSize));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->sampleLocationGridSize));
     if (toTransform->pSampleLocations)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
         {
-            transform_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+            transform_tohost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
         }
     }
 }
 
-void transform_VkAttachmentSampleLocationsEXT(
+void transform_fromhost_VkSampleLocationsInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSampleLocationsInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->sampleLocationGridSize));
+    if (toTransform->pSampleLocations)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
+        {
+            transform_fromhost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+        }
+    }
+}
+
+void transform_tohost_VkAttachmentSampleLocationsEXT(
     ResourceTracker* resourceTracker,
     VkAttachmentSampleLocationsEXT* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+    transform_tohost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
 }
 
-void transform_VkSubpassSampleLocationsEXT(
+void transform_fromhost_VkAttachmentSampleLocationsEXT(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleLocationsEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+}
+
+void transform_tohost_VkSubpassSampleLocationsEXT(
     ResourceTracker* resourceTracker,
     VkSubpassSampleLocationsEXT* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    transform_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+    transform_tohost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
 }
 
-void transform_VkRenderPassSampleLocationsBeginInfoEXT(
+void transform_fromhost_VkSubpassSampleLocationsEXT(
+    ResourceTracker* resourceTracker,
+    VkSubpassSampleLocationsEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+}
+
+void transform_tohost_VkRenderPassSampleLocationsBeginInfoEXT(
     ResourceTracker* resourceTracker,
     VkRenderPassSampleLocationsBeginInfoEXT* toTransform)
 {
@@ -4224,25 +8194,51 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pAttachmentInitialSampleLocations)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
         {
-            transform_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+            transform_tohost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
         }
     }
     if (toTransform->pPostSubpassSampleLocations)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
         {
-            transform_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+            transform_tohost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
         }
     }
 }
 
-void transform_VkPipelineSampleLocationsStateCreateInfoEXT(
+void transform_fromhost_VkRenderPassSampleLocationsBeginInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderPassSampleLocationsBeginInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pAttachmentInitialSampleLocations)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
+        {
+            transform_fromhost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+        }
+    }
+    if (toTransform->pPostSubpassSampleLocations)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
+        {
+            transform_fromhost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+        }
+    }
+}
+
+void transform_tohost_VkPipelineSampleLocationsStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineSampleLocationsStateCreateInfoEXT* toTransform)
 {
@@ -4250,12 +8246,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+    transform_tohost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
 }
 
-void transform_VkPhysicalDeviceSampleLocationsPropertiesEXT(
+void transform_fromhost_VkPipelineSampleLocationsStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineSampleLocationsStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSampleLocationsInfoEXT(resourceTracker, (VkSampleLocationsInfoEXT*)(&toTransform->sampleLocationsInfo));
+}
+
+void transform_tohost_VkPhysicalDeviceSampleLocationsPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSampleLocationsPropertiesEXT* toTransform)
 {
@@ -4263,12 +8272,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
 }
 
-void transform_VkMultisamplePropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceSampleLocationsPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSampleLocationsPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
+}
+
+void transform_tohost_VkMultisamplePropertiesEXT(
     ResourceTracker* resourceTracker,
     VkMultisamplePropertiesEXT* toTransform)
 {
@@ -4276,14 +8298,27 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    transform_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
+}
+
+void transform_fromhost_VkMultisamplePropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkMultisamplePropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxSampleLocationGridSize));
 }
 
 #endif
 #ifdef VK_EXT_blend_operation_advanced
-void transform_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
+void transform_tohost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* toTransform)
 {
@@ -4291,11 +8326,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* toTransform)
 {
@@ -4303,11 +8350,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendAdvancedStateCreateInfoEXT* toTransform)
 {
@@ -4315,13 +8374,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendAdvancedStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NV_fragment_coverage_to_color
-void transform_VkPipelineCoverageToColorStateCreateInfoNV(
+void transform_tohost_VkPipelineCoverageToColorStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineCoverageToColorStateCreateInfoNV* toTransform)
 {
@@ -4329,13 +8400,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineCoverageToColorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageToColorStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_NV_framebuffer_mixed_samples
-void transform_VkPipelineCoverageModulationStateCreateInfoNV(
+void transform_tohost_VkPipelineCoverageModulationStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineCoverageModulationStateCreateInfoNV* toTransform)
 {
@@ -4343,7 +8426,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineCoverageModulationStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageModulationStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -4353,7 +8448,7 @@
 #ifdef VK_EXT_post_depth_coverage
 #endif
 #ifdef VK_EXT_validation_cache
-void transform_VkValidationCacheCreateInfoEXT(
+void transform_tohost_VkValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkValidationCacheCreateInfoEXT* toTransform)
 {
@@ -4361,11 +8456,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkShaderModuleValidationCacheCreateInfoEXT(
+void transform_fromhost_VkValidationCacheCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationCacheCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkShaderModuleValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkShaderModuleValidationCacheCreateInfoEXT* toTransform)
 {
@@ -4373,13 +8480,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkShaderModuleValidationCacheCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkShaderModuleValidationCacheCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void transform_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform)
 {
@@ -4387,11 +8506,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform)
 {
@@ -4399,11 +8530,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform)
 {
@@ -4411,11 +8554,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform)
 {
@@ -4423,11 +8578,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform)
 {
@@ -4435,7 +8602,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -4443,7 +8622,7 @@
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
 #ifdef VK_EXT_global_priority
-void transform_VkDeviceQueueGlobalPriorityCreateInfoEXT(
+void transform_tohost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDeviceQueueGlobalPriorityCreateInfoEXT* toTransform)
 {
@@ -4451,13 +8630,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueGlobalPriorityCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_external_memory_host
-void transform_VkImportMemoryHostPointerInfoEXT(
+void transform_tohost_VkImportMemoryHostPointerInfoEXT(
     ResourceTracker* resourceTracker,
     VkImportMemoryHostPointerInfoEXT* toTransform)
 {
@@ -4465,24 +8656,49 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkMemoryHostPointerPropertiesEXT(
+void transform_fromhost_VkImportMemoryHostPointerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryHostPointerInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryHostPointerPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkMemoryHostPointerPropertiesEXT* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    resourceTracker->deviceMemoryTransform(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    resourceTracker->deviceMemoryTransform_tohost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
+void transform_fromhost_VkMemoryHostPointerPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryHostPointerPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost(nullptr, 1, nullptr, 1, nullptr, 1, nullptr, 1, &toTransform->memoryTypeBits, 1);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* toTransform)
 {
@@ -4490,7 +8706,19 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryHostPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
@@ -4498,7 +8726,7 @@
 #ifdef VK_AMD_buffer_marker
 #endif
 #ifdef VK_AMD_shader_core_properties
-void transform_VkPhysicalDeviceShaderCorePropertiesAMD(
+void transform_tohost_VkPhysicalDeviceShaderCorePropertiesAMD(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceShaderCorePropertiesAMD* toTransform)
 {
@@ -4506,13 +8734,25 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderCorePropertiesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCorePropertiesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
-void transform_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
+void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toTransform)
 {
@@ -4520,11 +8760,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkVertexInputBindingDivisorDescriptionEXT(
+void transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVertexInputBindingDivisorDescriptionEXT(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDivisorDescriptionEXT* toTransform)
 {
@@ -4532,7 +8784,15 @@
     (void)toTransform;
 }
 
-void transform_VkPipelineVertexInputDivisorStateCreateInfoEXT(
+void transform_fromhost_VkVertexInputBindingDivisorDescriptionEXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDivisorDescriptionEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineVertexInputDivisorStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* toTransform)
 {
@@ -4540,13 +8800,32 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     if (toTransform->pVertexBindingDivisors)
     {
         for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
         {
-            transform_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+            transform_tohost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineVertexInputDivisorStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineVertexInputDivisorStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVertexBindingDivisors)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
+        {
+            transform_fromhost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
         }
     }
 }
@@ -4555,7 +8834,7 @@
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
-void transform_VkQueueFamilyCheckpointPropertiesNV(
+void transform_tohost_VkQueueFamilyCheckpointPropertiesNV(
     ResourceTracker* resourceTracker,
     VkQueueFamilyCheckpointPropertiesNV* toTransform)
 {
@@ -4563,11 +8842,23 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
-void transform_VkCheckpointDataNV(
+void transform_fromhost_VkQueueFamilyCheckpointPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCheckpointDataNV(
     ResourceTracker* resourceTracker,
     VkCheckpointDataNV* toTransform)
 {
@@ -4575,14 +8866,26 @@
     (void)toTransform;
     if (toTransform->pNext)
     {
-        transform_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCheckpointDataNV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
 }
 
 #endif
 #ifdef VK_GOOGLE_address_space
 #endif
-void transform_extension_struct(
+void transform_tohost_extension_struct(
     ResourceTracker* resourceTracker,
     void* structExtension_out)
 {
@@ -4596,633 +8899,1284 @@
 #ifdef VK_VERSION_1_1
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
         {
-            transform_VkPhysicalDeviceSubgroupProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceSubgroupProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
         {
-            transform_VkPhysicalDevice16BitStorageFeatures(resourceTracker, reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDevice16BitStorageFeatures(resourceTracker, reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
         {
-            transform_VkMemoryDedicatedRequirements(resourceTracker, reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
+            transform_tohost_VkMemoryDedicatedRequirements(resourceTracker, reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
         {
-            transform_VkMemoryDedicatedAllocateInfo(resourceTracker, reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
+            transform_tohost_VkMemoryDedicatedAllocateInfo(resourceTracker, reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
         {
-            transform_VkMemoryAllocateFlagsInfo(resourceTracker, reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
+            transform_tohost_VkMemoryAllocateFlagsInfo(resourceTracker, reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
         {
-            transform_VkDeviceGroupRenderPassBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
+            transform_tohost_VkDeviceGroupRenderPassBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
         {
-            transform_VkDeviceGroupCommandBufferBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
+            transform_tohost_VkDeviceGroupCommandBufferBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
         {
-            transform_VkDeviceGroupSubmitInfo(resourceTracker, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
+            transform_tohost_VkDeviceGroupSubmitInfo(resourceTracker, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
         {
-            transform_VkDeviceGroupBindSparseInfo(resourceTracker, reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
+            transform_tohost_VkDeviceGroupBindSparseInfo(resourceTracker, reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
         {
-            transform_VkBindBufferMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
+            transform_tohost_VkBindBufferMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
         {
-            transform_VkBindImageMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
+            transform_tohost_VkBindImageMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
         {
-            transform_VkDeviceGroupDeviceCreateInfo(resourceTracker, reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
+            transform_tohost_VkDeviceGroupDeviceCreateInfo(resourceTracker, reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
         {
-            transform_VkPhysicalDeviceFeatures2(resourceTracker, reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceFeatures2(resourceTracker, reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
         {
-            transform_VkPhysicalDevicePointClippingProperties(resourceTracker, reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
+            transform_tohost_VkPhysicalDevicePointClippingProperties(resourceTracker, reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
         {
-            transform_VkRenderPassInputAttachmentAspectCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
+            transform_tohost_VkRenderPassInputAttachmentAspectCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
         {
-            transform_VkImageViewUsageCreateInfo(resourceTracker, reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
+            transform_tohost_VkImageViewUsageCreateInfo(resourceTracker, reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
         {
-            transform_VkPipelineTessellationDomainOriginStateCreateInfo(resourceTracker, reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
+            transform_tohost_VkPipelineTessellationDomainOriginStateCreateInfo(resourceTracker, reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
         {
-            transform_VkRenderPassMultiviewCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
+            transform_tohost_VkRenderPassMultiviewCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
         {
-            transform_VkPhysicalDeviceMultiviewFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceMultiviewFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
         {
-            transform_VkPhysicalDeviceMultiviewProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceMultiviewProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
         {
-            transform_VkPhysicalDeviceVariablePointerFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceVariablePointerFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
         {
-            transform_VkPhysicalDeviceProtectedMemoryFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceProtectedMemoryFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
         {
-            transform_VkPhysicalDeviceProtectedMemoryProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceProtectedMemoryProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
         {
-            transform_VkProtectedSubmitInfo(resourceTracker, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
+            transform_tohost_VkProtectedSubmitInfo(resourceTracker, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
         {
-            transform_VkSamplerYcbcrConversionInfo(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
+            transform_tohost_VkSamplerYcbcrConversionInfo(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
         {
-            transform_VkBindImagePlaneMemoryInfo(resourceTracker, reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
+            transform_tohost_VkBindImagePlaneMemoryInfo(resourceTracker, reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
         {
-            transform_VkImagePlaneMemoryRequirementsInfo(resourceTracker, reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
+            transform_tohost_VkImagePlaneMemoryRequirementsInfo(resourceTracker, reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
         {
-            transform_VkPhysicalDeviceSamplerYcbcrConversionFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
         {
-            transform_VkSamplerYcbcrConversionImageFormatProperties(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
+            transform_tohost_VkSamplerYcbcrConversionImageFormatProperties(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
         {
-            transform_VkPhysicalDeviceExternalImageFormatInfo(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceExternalImageFormatInfo(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
         {
-            transform_VkExternalImageFormatProperties(resourceTracker, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
+            transform_tohost_VkExternalImageFormatProperties(resourceTracker, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
         {
-            transform_VkPhysicalDeviceIDProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceIDProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
         {
-            transform_VkExternalMemoryImageCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
+            transform_tohost_VkExternalMemoryImageCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
         {
-            transform_VkExternalMemoryBufferCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
+            transform_tohost_VkExternalMemoryBufferCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
         {
-            transform_VkExportMemoryAllocateInfo(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
+            transform_tohost_VkExportMemoryAllocateInfo(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
         {
-            transform_VkExportFenceCreateInfo(resourceTracker, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
+            transform_tohost_VkExportFenceCreateInfo(resourceTracker, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
         {
-            transform_VkExportSemaphoreCreateInfo(resourceTracker, reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
+            transform_tohost_VkExportSemaphoreCreateInfo(resourceTracker, reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
         {
-            transform_VkPhysicalDeviceMaintenance3Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceMaintenance3Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
         {
-            transform_VkPhysicalDeviceShaderDrawParameterFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_swapchain
         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
         {
-            transform_VkImageSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
+            transform_tohost_VkImageSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
         {
-            transform_VkBindImageMemorySwapchainInfoKHR(resourceTracker, reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
+            transform_tohost_VkBindImageMemorySwapchainInfoKHR(resourceTracker, reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
         {
-            transform_VkDeviceGroupPresentInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
+            transform_tohost_VkDeviceGroupPresentInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
         {
-            transform_VkDeviceGroupSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
+            transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_display_swapchain
         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
         {
-            transform_VkDisplayPresentInfoKHR(resourceTracker, reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
+            transform_tohost_VkDisplayPresentInfoKHR(resourceTracker, reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
-            transform_VkImportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
+            transform_tohost_VkImportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
-            transform_VkExportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
+            transform_tohost_VkExportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_external_memory_fd
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
         {
-            transform_VkImportMemoryFdInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
+            transform_tohost_VkImportMemoryFdInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_win32_keyed_mutex
         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
         {
-            transform_VkWin32KeyedMutexAcquireReleaseInfoKHR(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
+            transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoKHR(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_external_semaphore_win32
         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
         {
-            transform_VkExportSemaphoreWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
+            transform_tohost_VkExportSemaphoreWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
         {
-            transform_VkD3D12FenceSubmitInfoKHR(resourceTracker, reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
+            transform_tohost_VkD3D12FenceSubmitInfoKHR(resourceTracker, reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_push_descriptor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
         {
-            transform_VkPhysicalDevicePushDescriptorPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
+            transform_tohost_VkPhysicalDevicePushDescriptorPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_incremental_present
         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
         {
-            transform_VkPresentRegionsKHR(resourceTracker, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
+            transform_tohost_VkPresentRegionsKHR(resourceTracker, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_shared_presentable_image
         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
         {
-            transform_VkSharedPresentSurfaceCapabilitiesKHR(resourceTracker, reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
+            transform_tohost_VkSharedPresentSurfaceCapabilitiesKHR(resourceTracker, reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_external_fence_win32
         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
         {
-            transform_VkExportFenceWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
+            transform_tohost_VkExportFenceWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_image_format_list
         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
         {
-            transform_VkImageFormatListCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            transform_tohost_VkImageFormatListCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_KHR_8bit_storage
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
         {
-            transform_VkPhysicalDevice8BitStorageFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
-            transform_VkNativeBufferANDROID(resourceTracker, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
+            transform_tohost_VkNativeBufferANDROID(resourceTracker, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
-            transform_VkDebugReportCallbackCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkDebugReportCallbackCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_AMD_rasterization_order
         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
         {
-            transform_VkPipelineRasterizationStateRasterizationOrderAMD(resourceTracker, reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
+            transform_tohost_VkPipelineRasterizationStateRasterizationOrderAMD(resourceTracker, reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_dedicated_allocation
         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
         {
-            transform_VkDedicatedAllocationImageCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkDedicatedAllocationImageCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
         {
-            transform_VkDedicatedAllocationBufferCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkDedicatedAllocationBufferCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
         {
-            transform_VkDedicatedAllocationMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
+            transform_tohost_VkDedicatedAllocationMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
-            transform_VkTextureLODGatherFormatPropertiesAMD(resourceTracker, reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
+            transform_tohost_VkTextureLODGatherFormatPropertiesAMD(resourceTracker, reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
-            transform_VkExternalMemoryImageCreateInfoNV(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkExternalMemoryImageCreateInfoNV(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
         {
-            transform_VkExportMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
+            transform_tohost_VkExportMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
         {
-            transform_VkImportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
+            transform_tohost_VkImportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
         {
-            transform_VkExportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
+            transform_tohost_VkExportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_win32_keyed_mutex
         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
         {
-            transform_VkWin32KeyedMutexAcquireReleaseInfoNV(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
+            transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoNV(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_validation_flags
         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
         {
-            transform_VkValidationFlagsEXT(resourceTracker, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
+            transform_tohost_VkValidationFlagsEXT(resourceTracker, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
-            transform_VkPhysicalDeviceConditionalRenderingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
         {
-            transform_VkCommandBufferInheritanceConditionalRenderingInfoEXT(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
+            transform_tohost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_clip_space_w_scaling
         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
         {
-            transform_VkPipelineViewportWScalingStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkPipelineViewportWScalingStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_display_control
         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
         {
-            transform_VkSwapchainCounterCreateInfoEXT(resourceTracker, reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkSwapchainCounterCreateInfoEXT(resourceTracker, reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_GOOGLE_display_timing
         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
         {
-            transform_VkPresentTimesInfoGOOGLE(resourceTracker, reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
+            transform_tohost_VkPresentTimesInfoGOOGLE(resourceTracker, reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NVX_multiview_per_view_attributes
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
         {
-            transform_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_viewport_swizzle
         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
         {
-            transform_VkPipelineViewportSwizzleStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkPipelineViewportSwizzleStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_discard_rectangles
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceDiscardRectanglePropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
         {
-            transform_VkPipelineDiscardRectangleStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineDiscardRectangleStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_conservative_rasterization
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
         {
-            transform_VkPipelineRasterizationConservativeStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineRasterizationConservativeStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
-            transform_VkDebugUtilsMessengerCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
         {
-            transform_VkAndroidHardwareBufferUsageANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
+            transform_tohost_VkAndroidHardwareBufferUsageANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
         {
-            transform_VkAndroidHardwareBufferFormatPropertiesANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
+            transform_tohost_VkAndroidHardwareBufferFormatPropertiesANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
         {
-            transform_VkImportAndroidHardwareBufferInfoANDROID(resourceTracker, reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
+            transform_tohost_VkImportAndroidHardwareBufferInfoANDROID(resourceTracker, reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
         {
-            transform_VkExternalFormatANDROID(resourceTracker, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
+            transform_tohost_VkExternalFormatANDROID(resourceTracker, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
         {
-            transform_VkSamplerReductionModeCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkSamplerReductionModeCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_sample_locations
         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
         {
-            transform_VkSampleLocationsInfoEXT(resourceTracker, reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
+            transform_tohost_VkSampleLocationsInfoEXT(resourceTracker, reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
         {
-            transform_VkRenderPassSampleLocationsBeginInfoEXT(resourceTracker, reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
+            transform_tohost_VkRenderPassSampleLocationsBeginInfoEXT(resourceTracker, reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
         {
-            transform_VkPipelineSampleLocationsStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineSampleLocationsStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceSampleLocationsPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceSampleLocationsPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_blend_operation_advanced
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
         {
-            transform_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
         {
-            transform_VkPipelineColorBlendAdvancedStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_fragment_coverage_to_color
         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
         {
-            transform_VkPipelineCoverageToColorStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkPipelineCoverageToColorStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_framebuffer_mixed_samples
         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
         {
-            transform_VkPipelineCoverageModulationStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
+            transform_tohost_VkPipelineCoverageModulationStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
-            transform_VkShaderModuleValidationCacheCreateInfoEXT(resourceTracker, reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkShaderModuleValidationCacheCreateInfoEXT(resourceTracker, reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_descriptor_indexing
         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
         {
-            transform_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
         {
-            transform_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
         {
-            transform_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
         {
-            transform_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_global_priority
         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
         {
-            transform_VkDeviceQueueGlobalPriorityCreateInfoEXT(resourceTracker, reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkDeviceQueueGlobalPriorityCreateInfoEXT(resourceTracker, reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_external_memory_host
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
         {
-            transform_VkImportMemoryHostPointerInfoEXT(resourceTracker, reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
+            transform_tohost_VkImportMemoryHostPointerInfoEXT(resourceTracker, reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
-            transform_VkPhysicalDeviceShaderCorePropertiesAMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShaderCorePropertiesAMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
-            transform_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
         {
-            transform_VkPipelineVertexInputDivisorStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineVertexInputDivisorStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
         {
-            transform_VkQueueFamilyCheckpointPropertiesNV(resourceTracker, reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
+            transform_tohost_VkQueueFamilyCheckpointPropertiesNV(resourceTracker, reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+        default:
+        {
+            return;
+        }
+    }
+}
+
+void transform_fromhost_extension_struct(
+    ResourceTracker* resourceTracker,
+    void* structExtension_out)
+{
+    if (!structExtension_out)
+    {
+        return;
+    }
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
+    switch(structType)
+    {
+#ifdef VK_VERSION_1_1
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceSubgroupProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDevice16BitStorageFeatures(resourceTracker, reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
+        {
+            transform_fromhost_VkMemoryDedicatedRequirements(resourceTracker, reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
+        {
+            transform_fromhost_VkMemoryDedicatedAllocateInfo(resourceTracker, reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
+        {
+            transform_fromhost_VkMemoryAllocateFlagsInfo(resourceTracker, reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
+        {
+            transform_fromhost_VkDeviceGroupRenderPassBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
+        {
+            transform_fromhost_VkDeviceGroupCommandBufferBeginInfo(resourceTracker, reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
+        {
+            transform_fromhost_VkDeviceGroupSubmitInfo(resourceTracker, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
+        {
+            transform_fromhost_VkDeviceGroupBindSparseInfo(resourceTracker, reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
+        {
+            transform_fromhost_VkBindBufferMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
+        {
+            transform_fromhost_VkBindImageMemoryDeviceGroupInfo(resourceTracker, reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
+        {
+            transform_fromhost_VkDeviceGroupDeviceCreateInfo(resourceTracker, reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
+        {
+            transform_fromhost_VkPhysicalDeviceFeatures2(resourceTracker, reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDevicePointClippingProperties(resourceTracker, reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
+        {
+            transform_fromhost_VkRenderPassInputAttachmentAspectCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
+        {
+            transform_fromhost_VkImageViewUsageCreateInfo(resourceTracker, reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
+        {
+            transform_fromhost_VkPipelineTessellationDomainOriginStateCreateInfo(resourceTracker, reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
+        {
+            transform_fromhost_VkRenderPassMultiviewCreateInfo(resourceTracker, reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceMultiviewFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceMultiviewProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceProtectedMemoryFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceProtectedMemoryProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
+        {
+            transform_fromhost_VkProtectedSubmitInfo(resourceTracker, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
+        {
+            transform_fromhost_VkSamplerYcbcrConversionInfo(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
+        {
+            transform_fromhost_VkBindImagePlaneMemoryInfo(resourceTracker, reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
+        {
+            transform_fromhost_VkImagePlaneMemoryRequirementsInfo(resourceTracker, reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
+        {
+            transform_fromhost_VkSamplerYcbcrConversionImageFormatProperties(resourceTracker, reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
+        {
+            transform_fromhost_VkPhysicalDeviceExternalImageFormatInfo(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
+        {
+            transform_fromhost_VkExternalImageFormatProperties(resourceTracker, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceIDProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
+        {
+            transform_fromhost_VkExternalMemoryImageCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
+        {
+            transform_fromhost_VkExternalMemoryBufferCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
+        {
+            transform_fromhost_VkExportMemoryAllocateInfo(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
+        {
+            transform_fromhost_VkExportFenceCreateInfo(resourceTracker, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
+        {
+            transform_fromhost_VkExportSemaphoreCreateInfo(resourceTracker, reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceMaintenance3Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_swapchain
+        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkImageSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
+        {
+            transform_fromhost_VkBindImageMemorySwapchainInfoKHR(resourceTracker, reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
+        {
+            transform_fromhost_VkDeviceGroupPresentInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(resourceTracker, reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_display_swapchain
+        case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
+        {
+            transform_fromhost_VkDisplayPresentInfoKHR(resourceTracker, reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_external_memory_win32
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
+        {
+            transform_fromhost_VkImportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
+        {
+            transform_fromhost_VkExportMemoryWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_external_memory_fd
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
+        {
+            transform_fromhost_VkImportMemoryFdInfoKHR(resourceTracker, reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_win32_keyed_mutex
+        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
+        {
+            transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoKHR(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_external_semaphore_win32
+        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
+        {
+            transform_fromhost_VkExportSemaphoreWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
+        {
+            transform_fromhost_VkD3D12FenceSubmitInfoKHR(resourceTracker, reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_push_descriptor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePushDescriptorPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_incremental_present
+        case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
+        {
+            transform_fromhost_VkPresentRegionsKHR(resourceTracker, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shared_presentable_image
+        case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
+        {
+            transform_fromhost_VkSharedPresentSurfaceCapabilitiesKHR(resourceTracker, reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_external_fence_win32
+        case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
+        {
+            transform_fromhost_VkExportFenceWin32HandleInfoKHR(resourceTracker, reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_image_format_list
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkImageFormatListCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_8bit_storage
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            transform_fromhost_VkNativeBufferANDROID(resourceTracker, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_debug_report
+        case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDebugReportCallbackCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_rasterization_order
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
+        {
+            transform_fromhost_VkPipelineRasterizationStateRasterizationOrderAMD(resourceTracker, reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation
+        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkDedicatedAllocationImageCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkDedicatedAllocationBufferCreateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
+        {
+            transform_fromhost_VkDedicatedAllocationMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_texture_gather_bias_lod
+        case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
+        {
+            transform_fromhost_VkTextureLODGatherFormatPropertiesAMD(resourceTracker, reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory
+        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkExternalMemoryImageCreateInfoNV(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
+        {
+            transform_fromhost_VkExportMemoryAllocateInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_win32
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
+        {
+            transform_fromhost_VkImportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
+        {
+            transform_fromhost_VkExportMemoryWin32HandleInfoNV(resourceTracker, reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_win32_keyed_mutex
+        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
+        {
+            transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoNV(resourceTracker, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_flags
+        case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
+        {
+            transform_fromhost_VkValidationFlagsEXT(resourceTracker, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_conditional_rendering
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
+        {
+            transform_fromhost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_clip_space_w_scaling
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineViewportWScalingStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_display_control
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkSwapchainCounterCreateInfoEXT(resourceTracker, reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GOOGLE_display_timing
+        case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
+        {
+            transform_fromhost_VkPresentTimesInfoGOOGLE(resourceTracker, reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NVX_multiview_per_view_attributes
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
+        {
+            transform_fromhost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_viewport_swizzle
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineViewportSwizzleStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_discard_rectangles
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineDiscardRectangleStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_conservative_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineRasterizationConservativeStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_debug_utils
+        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDebugUtilsMessengerCreateInfoEXT(resourceTracker, reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_ANDROID_external_memory_android_hardware_buffer
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
+        {
+            transform_fromhost_VkAndroidHardwareBufferUsageANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
+        {
+            transform_fromhost_VkAndroidHardwareBufferFormatPropertiesANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
+        {
+            transform_fromhost_VkImportAndroidHardwareBufferInfoANDROID(resourceTracker, reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
+        {
+            transform_fromhost_VkExternalFormatANDROID(resourceTracker, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_sampler_filter_minmax
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkSamplerReductionModeCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_sample_locations
+        case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
+        {
+            transform_fromhost_VkSampleLocationsInfoEXT(resourceTracker, reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
+        {
+            transform_fromhost_VkRenderPassSampleLocationsBeginInfoEXT(resourceTracker, reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineSampleLocationsStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceSampleLocationsPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_blend_operation_advanced
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_coverage_to_color
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineCoverageToColorStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_framebuffer_mixed_samples
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineCoverageModulationStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_cache
+        case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkShaderModuleValidationCacheCreateInfoEXT(resourceTracker, reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_descriptor_indexing
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        {
+            transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+        {
+            transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_global_priority
+        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDeviceQueueGlobalPriorityCreateInfoEXT(resourceTracker, reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_external_memory_host
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
+        {
+            transform_fromhost_VkImportMemoryHostPointerInfoEXT(resourceTracker, reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderCorePropertiesAMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_attribute_divisor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineVertexInputDivisorStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostic_checkpoints
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
+        {
+            transform_fromhost_VkQueueFamilyCheckpointPropertiesNV(resourceTracker, reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
             break;
         }
 #endif
diff --git a/system/vulkan_enc/goldfish_vk_transform.h b/system/vulkan_enc/goldfish_vk_transform.h
index db2c930..9aa4b84 100644
--- a/system/vulkan_enc/goldfish_vk_transform.h
+++ b/system/vulkan_enc/goldfish_vk_transform.h
@@ -29,835 +29,1640 @@
 
 #include "vk_platform_compat.h"
 
+#include "goldfish_vk_private_defs.h"
 #include "ResourceTracker.h"
 
 
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void transform_VkApplicationInfo(
+void transform_tohost_VkApplicationInfo(
     ResourceTracker* resourceTracker,
     VkApplicationInfo* toTransform);
 
-void transform_VkInstanceCreateInfo(
+void transform_fromhost_VkApplicationInfo(
+    ResourceTracker* resourceTracker,
+    VkApplicationInfo* toTransform);
+
+void transform_tohost_VkInstanceCreateInfo(
     ResourceTracker* resourceTracker,
     VkInstanceCreateInfo* toTransform);
 
-void transform_VkAllocationCallbacks(
+void transform_fromhost_VkInstanceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkInstanceCreateInfo* toTransform);
+
+void transform_tohost_VkAllocationCallbacks(
     ResourceTracker* resourceTracker,
     VkAllocationCallbacks* toTransform);
 
-void transform_VkPhysicalDeviceFeatures(
+void transform_fromhost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceFeatures* toTransform);
 
-void transform_VkFormatProperties(
+void transform_fromhost_VkPhysicalDeviceFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures* toTransform);
+
+void transform_tohost_VkFormatProperties(
     ResourceTracker* resourceTracker,
     VkFormatProperties* toTransform);
 
-void transform_VkExtent3D(
+void transform_fromhost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform);
+
+void transform_tohost_VkExtent3D(
     ResourceTracker* resourceTracker,
     VkExtent3D* toTransform);
 
-void transform_VkImageFormatProperties(
+void transform_fromhost_VkExtent3D(
+    ResourceTracker* resourceTracker,
+    VkExtent3D* toTransform);
+
+void transform_tohost_VkImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkImageFormatProperties* toTransform);
 
-void transform_VkPhysicalDeviceLimits(
+void transform_fromhost_VkImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceLimits(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceLimits* toTransform);
 
-void transform_VkPhysicalDeviceSparseProperties(
+void transform_fromhost_VkPhysicalDeviceLimits(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLimits* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSparseProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseProperties* toTransform);
 
-void transform_VkPhysicalDeviceProperties(
+void transform_fromhost_VkPhysicalDeviceSparseProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSparseProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProperties* toTransform);
 
-void transform_VkQueueFamilyProperties(
+void transform_fromhost_VkPhysicalDeviceProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProperties* toTransform);
+
+void transform_tohost_VkQueueFamilyProperties(
     ResourceTracker* resourceTracker,
     VkQueueFamilyProperties* toTransform);
 
-void transform_VkMemoryType(
+void transform_fromhost_VkQueueFamilyProperties(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyProperties* toTransform);
+
+void transform_tohost_VkMemoryType(
     ResourceTracker* resourceTracker,
     VkMemoryType* toTransform);
 
-void transform_VkMemoryHeap(
+void transform_fromhost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform);
+
+void transform_tohost_VkMemoryHeap(
     ResourceTracker* resourceTracker,
     VkMemoryHeap* toTransform);
 
-void transform_VkPhysicalDeviceMemoryProperties(
+void transform_fromhost_VkMemoryHeap(
+    ResourceTracker* resourceTracker,
+    VkMemoryHeap* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMemoryProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMemoryProperties* toTransform);
 
-void transform_VkDeviceQueueCreateInfo(
+void transform_fromhost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform);
+
+void transform_tohost_VkDeviceQueueCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceQueueCreateInfo* toTransform);
 
-void transform_VkDeviceCreateInfo(
+void transform_fromhost_VkDeviceQueueCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueCreateInfo* toTransform);
+
+void transform_tohost_VkDeviceCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceCreateInfo* toTransform);
 
-void transform_VkExtensionProperties(
+void transform_fromhost_VkDeviceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceCreateInfo* toTransform);
+
+void transform_tohost_VkExtensionProperties(
     ResourceTracker* resourceTracker,
     VkExtensionProperties* toTransform);
 
-void transform_VkLayerProperties(
+void transform_fromhost_VkExtensionProperties(
+    ResourceTracker* resourceTracker,
+    VkExtensionProperties* toTransform);
+
+void transform_tohost_VkLayerProperties(
     ResourceTracker* resourceTracker,
     VkLayerProperties* toTransform);
 
-void transform_VkSubmitInfo(
+void transform_fromhost_VkLayerProperties(
+    ResourceTracker* resourceTracker,
+    VkLayerProperties* toTransform);
+
+void transform_tohost_VkSubmitInfo(
     ResourceTracker* resourceTracker,
     VkSubmitInfo* toTransform);
 
-void transform_VkMemoryAllocateInfo(
+void transform_fromhost_VkSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo* toTransform);
+
+void transform_tohost_VkMemoryAllocateInfo(
     ResourceTracker* resourceTracker,
     VkMemoryAllocateInfo* toTransform);
 
-void transform_VkMappedMemoryRange(
+void transform_fromhost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform);
+
+void transform_tohost_VkMappedMemoryRange(
     ResourceTracker* resourceTracker,
     VkMappedMemoryRange* toTransform);
 
-void transform_VkMemoryRequirements(
+void transform_fromhost_VkMappedMemoryRange(
+    ResourceTracker* resourceTracker,
+    VkMappedMemoryRange* toTransform);
+
+void transform_tohost_VkMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements* toTransform);
 
-void transform_VkSparseImageFormatProperties(
+void transform_fromhost_VkMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkMemoryRequirements* toTransform);
+
+void transform_tohost_VkSparseImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkSparseImageFormatProperties* toTransform);
 
-void transform_VkSparseImageMemoryRequirements(
+void transform_fromhost_VkSparseImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties* toTransform);
+
+void transform_tohost_VkSparseImageMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryRequirements* toTransform);
 
-void transform_VkSparseMemoryBind(
+void transform_fromhost_VkSparseImageMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements* toTransform);
+
+void transform_tohost_VkSparseMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseMemoryBind* toTransform);
 
-void transform_VkSparseBufferMemoryBindInfo(
+void transform_fromhost_VkSparseMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseMemoryBind* toTransform);
+
+void transform_tohost_VkSparseBufferMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseBufferMemoryBindInfo* toTransform);
 
-void transform_VkSparseImageOpaqueMemoryBindInfo(
+void transform_fromhost_VkSparseBufferMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseBufferMemoryBindInfo* toTransform);
+
+void transform_tohost_VkSparseImageOpaqueMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseImageOpaqueMemoryBindInfo* toTransform);
 
-void transform_VkImageSubresource(
+void transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageOpaqueMemoryBindInfo* toTransform);
+
+void transform_tohost_VkImageSubresource(
     ResourceTracker* resourceTracker,
     VkImageSubresource* toTransform);
 
-void transform_VkOffset3D(
+void transform_fromhost_VkImageSubresource(
+    ResourceTracker* resourceTracker,
+    VkImageSubresource* toTransform);
+
+void transform_tohost_VkOffset3D(
     ResourceTracker* resourceTracker,
     VkOffset3D* toTransform);
 
-void transform_VkSparseImageMemoryBind(
+void transform_fromhost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform);
+
+void transform_tohost_VkSparseImageMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryBind* toTransform);
 
-void transform_VkSparseImageMemoryBindInfo(
+void transform_fromhost_VkSparseImageMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBind* toTransform);
+
+void transform_tohost_VkSparseImageMemoryBindInfo(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryBindInfo* toTransform);
 
-void transform_VkBindSparseInfo(
+void transform_fromhost_VkSparseImageMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBindInfo* toTransform);
+
+void transform_tohost_VkBindSparseInfo(
     ResourceTracker* resourceTracker,
     VkBindSparseInfo* toTransform);
 
-void transform_VkFenceCreateInfo(
+void transform_fromhost_VkBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkBindSparseInfo* toTransform);
+
+void transform_tohost_VkFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkFenceCreateInfo* toTransform);
 
-void transform_VkSemaphoreCreateInfo(
+void transform_fromhost_VkFenceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFenceCreateInfo* toTransform);
+
+void transform_tohost_VkSemaphoreCreateInfo(
     ResourceTracker* resourceTracker,
     VkSemaphoreCreateInfo* toTransform);
 
-void transform_VkEventCreateInfo(
+void transform_fromhost_VkSemaphoreCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreCreateInfo* toTransform);
+
+void transform_tohost_VkEventCreateInfo(
     ResourceTracker* resourceTracker,
     VkEventCreateInfo* toTransform);
 
-void transform_VkQueryPoolCreateInfo(
+void transform_fromhost_VkEventCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkEventCreateInfo* toTransform);
+
+void transform_tohost_VkQueryPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkQueryPoolCreateInfo* toTransform);
 
-void transform_VkBufferCreateInfo(
+void transform_fromhost_VkQueryPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolCreateInfo* toTransform);
+
+void transform_tohost_VkBufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkBufferCreateInfo* toTransform);
 
-void transform_VkBufferViewCreateInfo(
+void transform_fromhost_VkBufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferCreateInfo* toTransform);
+
+void transform_tohost_VkBufferViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkBufferViewCreateInfo* toTransform);
 
-void transform_VkImageCreateInfo(
+void transform_fromhost_VkBufferViewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferViewCreateInfo* toTransform);
+
+void transform_tohost_VkImageCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageCreateInfo* toTransform);
 
-void transform_VkSubresourceLayout(
+void transform_fromhost_VkImageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageCreateInfo* toTransform);
+
+void transform_tohost_VkSubresourceLayout(
     ResourceTracker* resourceTracker,
     VkSubresourceLayout* toTransform);
 
-void transform_VkComponentMapping(
+void transform_fromhost_VkSubresourceLayout(
+    ResourceTracker* resourceTracker,
+    VkSubresourceLayout* toTransform);
+
+void transform_tohost_VkComponentMapping(
     ResourceTracker* resourceTracker,
     VkComponentMapping* toTransform);
 
-void transform_VkImageSubresourceRange(
+void transform_fromhost_VkComponentMapping(
+    ResourceTracker* resourceTracker,
+    VkComponentMapping* toTransform);
+
+void transform_tohost_VkImageSubresourceRange(
     ResourceTracker* resourceTracker,
     VkImageSubresourceRange* toTransform);
 
-void transform_VkImageViewCreateInfo(
+void transform_fromhost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform);
+
+void transform_tohost_VkImageViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewCreateInfo* toTransform);
 
-void transform_VkShaderModuleCreateInfo(
+void transform_fromhost_VkImageViewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageViewCreateInfo* toTransform);
+
+void transform_tohost_VkShaderModuleCreateInfo(
     ResourceTracker* resourceTracker,
     VkShaderModuleCreateInfo* toTransform);
 
-void transform_VkPipelineCacheCreateInfo(
+void transform_fromhost_VkShaderModuleCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkShaderModuleCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineCacheCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineCacheCreateInfo* toTransform);
 
-void transform_VkSpecializationMapEntry(
+void transform_fromhost_VkPipelineCacheCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheCreateInfo* toTransform);
+
+void transform_tohost_VkSpecializationMapEntry(
     ResourceTracker* resourceTracker,
     VkSpecializationMapEntry* toTransform);
 
-void transform_VkSpecializationInfo(
+void transform_fromhost_VkSpecializationMapEntry(
+    ResourceTracker* resourceTracker,
+    VkSpecializationMapEntry* toTransform);
+
+void transform_tohost_VkSpecializationInfo(
     ResourceTracker* resourceTracker,
     VkSpecializationInfo* toTransform);
 
-void transform_VkPipelineShaderStageCreateInfo(
+void transform_fromhost_VkSpecializationInfo(
+    ResourceTracker* resourceTracker,
+    VkSpecializationInfo* toTransform);
+
+void transform_tohost_VkPipelineShaderStageCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineShaderStageCreateInfo* toTransform);
 
-void transform_VkVertexInputBindingDescription(
+void transform_fromhost_VkPipelineShaderStageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageCreateInfo* toTransform);
+
+void transform_tohost_VkVertexInputBindingDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDescription* toTransform);
 
-void transform_VkVertexInputAttributeDescription(
+void transform_fromhost_VkVertexInputBindingDescription(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription* toTransform);
+
+void transform_tohost_VkVertexInputAttributeDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputAttributeDescription* toTransform);
 
-void transform_VkPipelineVertexInputStateCreateInfo(
+void transform_fromhost_VkVertexInputAttributeDescription(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription* toTransform);
+
+void transform_tohost_VkPipelineVertexInputStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineVertexInputStateCreateInfo* toTransform);
 
-void transform_VkPipelineInputAssemblyStateCreateInfo(
+void transform_fromhost_VkPipelineVertexInputStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineVertexInputStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineInputAssemblyStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineInputAssemblyStateCreateInfo* toTransform);
 
-void transform_VkPipelineTessellationStateCreateInfo(
+void transform_fromhost_VkPipelineInputAssemblyStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineInputAssemblyStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineTessellationStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineTessellationStateCreateInfo* toTransform);
 
-void transform_VkViewport(
+void transform_fromhost_VkPipelineTessellationStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineTessellationStateCreateInfo* toTransform);
+
+void transform_tohost_VkViewport(
     ResourceTracker* resourceTracker,
     VkViewport* toTransform);
 
-void transform_VkOffset2D(
+void transform_fromhost_VkViewport(
+    ResourceTracker* resourceTracker,
+    VkViewport* toTransform);
+
+void transform_tohost_VkOffset2D(
     ResourceTracker* resourceTracker,
     VkOffset2D* toTransform);
 
-void transform_VkExtent2D(
+void transform_fromhost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform);
+
+void transform_tohost_VkExtent2D(
     ResourceTracker* resourceTracker,
     VkExtent2D* toTransform);
 
-void transform_VkRect2D(
+void transform_fromhost_VkExtent2D(
+    ResourceTracker* resourceTracker,
+    VkExtent2D* toTransform);
+
+void transform_tohost_VkRect2D(
     ResourceTracker* resourceTracker,
     VkRect2D* toTransform);
 
-void transform_VkPipelineViewportStateCreateInfo(
+void transform_fromhost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform);
+
+void transform_tohost_VkPipelineViewportStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineViewportStateCreateInfo* toTransform);
 
-void transform_VkPipelineRasterizationStateCreateInfo(
+void transform_fromhost_VkPipelineViewportStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineRasterizationStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationStateCreateInfo* toTransform);
 
-void transform_VkPipelineMultisampleStateCreateInfo(
+void transform_fromhost_VkPipelineRasterizationStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineMultisampleStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineMultisampleStateCreateInfo* toTransform);
 
-void transform_VkStencilOpState(
+void transform_fromhost_VkPipelineMultisampleStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineMultisampleStateCreateInfo* toTransform);
+
+void transform_tohost_VkStencilOpState(
     ResourceTracker* resourceTracker,
     VkStencilOpState* toTransform);
 
-void transform_VkPipelineDepthStencilStateCreateInfo(
+void transform_fromhost_VkStencilOpState(
+    ResourceTracker* resourceTracker,
+    VkStencilOpState* toTransform);
+
+void transform_tohost_VkPipelineDepthStencilStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineDepthStencilStateCreateInfo* toTransform);
 
-void transform_VkPipelineColorBlendAttachmentState(
+void transform_fromhost_VkPipelineDepthStencilStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineDepthStencilStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineColorBlendAttachmentState(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendAttachmentState* toTransform);
 
-void transform_VkPipelineColorBlendStateCreateInfo(
+void transform_fromhost_VkPipelineColorBlendAttachmentState(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendAttachmentState* toTransform);
+
+void transform_tohost_VkPipelineColorBlendStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendStateCreateInfo* toTransform);
 
-void transform_VkPipelineDynamicStateCreateInfo(
+void transform_fromhost_VkPipelineColorBlendStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendStateCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineDynamicStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineDynamicStateCreateInfo* toTransform);
 
-void transform_VkGraphicsPipelineCreateInfo(
+void transform_fromhost_VkPipelineDynamicStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineDynamicStateCreateInfo* toTransform);
+
+void transform_tohost_VkGraphicsPipelineCreateInfo(
     ResourceTracker* resourceTracker,
     VkGraphicsPipelineCreateInfo* toTransform);
 
-void transform_VkComputePipelineCreateInfo(
+void transform_fromhost_VkGraphicsPipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineCreateInfo* toTransform);
+
+void transform_tohost_VkComputePipelineCreateInfo(
     ResourceTracker* resourceTracker,
     VkComputePipelineCreateInfo* toTransform);
 
-void transform_VkPushConstantRange(
+void transform_fromhost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform);
+
+void transform_tohost_VkPushConstantRange(
     ResourceTracker* resourceTracker,
     VkPushConstantRange* toTransform);
 
-void transform_VkPipelineLayoutCreateInfo(
+void transform_fromhost_VkPushConstantRange(
+    ResourceTracker* resourceTracker,
+    VkPushConstantRange* toTransform);
+
+void transform_tohost_VkPipelineLayoutCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineLayoutCreateInfo* toTransform);
 
-void transform_VkSamplerCreateInfo(
+void transform_fromhost_VkPipelineLayoutCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineLayoutCreateInfo* toTransform);
+
+void transform_tohost_VkSamplerCreateInfo(
     ResourceTracker* resourceTracker,
     VkSamplerCreateInfo* toTransform);
 
-void transform_VkDescriptorSetLayoutBinding(
+void transform_fromhost_VkSamplerCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerCreateInfo* toTransform);
+
+void transform_tohost_VkDescriptorSetLayoutBinding(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutBinding* toTransform);
 
-void transform_VkDescriptorSetLayoutCreateInfo(
+void transform_fromhost_VkDescriptorSetLayoutBinding(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBinding* toTransform);
+
+void transform_tohost_VkDescriptorSetLayoutCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutCreateInfo* toTransform);
 
-void transform_VkDescriptorPoolSize(
+void transform_fromhost_VkDescriptorSetLayoutCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutCreateInfo* toTransform);
+
+void transform_tohost_VkDescriptorPoolSize(
     ResourceTracker* resourceTracker,
     VkDescriptorPoolSize* toTransform);
 
-void transform_VkDescriptorPoolCreateInfo(
+void transform_fromhost_VkDescriptorPoolSize(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolSize* toTransform);
+
+void transform_tohost_VkDescriptorPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorPoolCreateInfo* toTransform);
 
-void transform_VkDescriptorSetAllocateInfo(
+void transform_fromhost_VkDescriptorPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolCreateInfo* toTransform);
+
+void transform_tohost_VkDescriptorSetAllocateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorSetAllocateInfo* toTransform);
 
-void transform_VkDescriptorImageInfo(
+void transform_fromhost_VkDescriptorSetAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetAllocateInfo* toTransform);
+
+void transform_tohost_VkDescriptorImageInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorImageInfo* toTransform);
 
-void transform_VkDescriptorBufferInfo(
+void transform_fromhost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform);
+
+void transform_tohost_VkDescriptorBufferInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorBufferInfo* toTransform);
 
-void transform_VkWriteDescriptorSet(
+void transform_fromhost_VkDescriptorBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorBufferInfo* toTransform);
+
+void transform_tohost_VkWriteDescriptorSet(
     ResourceTracker* resourceTracker,
     VkWriteDescriptorSet* toTransform);
 
-void transform_VkCopyDescriptorSet(
+void transform_fromhost_VkWriteDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSet* toTransform);
+
+void transform_tohost_VkCopyDescriptorSet(
     ResourceTracker* resourceTracker,
     VkCopyDescriptorSet* toTransform);
 
-void transform_VkFramebufferCreateInfo(
+void transform_fromhost_VkCopyDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkCopyDescriptorSet* toTransform);
+
+void transform_tohost_VkFramebufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkFramebufferCreateInfo* toTransform);
 
-void transform_VkAttachmentDescription(
+void transform_fromhost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform);
+
+void transform_tohost_VkAttachmentDescription(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription* toTransform);
 
-void transform_VkAttachmentReference(
+void transform_fromhost_VkAttachmentDescription(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription* toTransform);
+
+void transform_tohost_VkAttachmentReference(
     ResourceTracker* resourceTracker,
     VkAttachmentReference* toTransform);
 
-void transform_VkSubpassDescription(
+void transform_fromhost_VkAttachmentReference(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference* toTransform);
+
+void transform_tohost_VkSubpassDescription(
     ResourceTracker* resourceTracker,
     VkSubpassDescription* toTransform);
 
-void transform_VkSubpassDependency(
+void transform_fromhost_VkSubpassDescription(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription* toTransform);
+
+void transform_tohost_VkSubpassDependency(
     ResourceTracker* resourceTracker,
     VkSubpassDependency* toTransform);
 
-void transform_VkRenderPassCreateInfo(
+void transform_fromhost_VkSubpassDependency(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency* toTransform);
+
+void transform_tohost_VkRenderPassCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassCreateInfo* toTransform);
 
-void transform_VkCommandPoolCreateInfo(
+void transform_fromhost_VkRenderPassCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo* toTransform);
+
+void transform_tohost_VkCommandPoolCreateInfo(
     ResourceTracker* resourceTracker,
     VkCommandPoolCreateInfo* toTransform);
 
-void transform_VkCommandBufferAllocateInfo(
+void transform_fromhost_VkCommandPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandPoolCreateInfo* toTransform);
+
+void transform_tohost_VkCommandBufferAllocateInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferAllocateInfo* toTransform);
 
-void transform_VkCommandBufferInheritanceInfo(
+void transform_fromhost_VkCommandBufferAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferAllocateInfo* toTransform);
+
+void transform_tohost_VkCommandBufferInheritanceInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferInheritanceInfo* toTransform);
 
-void transform_VkCommandBufferBeginInfo(
+void transform_fromhost_VkCommandBufferInheritanceInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceInfo* toTransform);
+
+void transform_tohost_VkCommandBufferBeginInfo(
     ResourceTracker* resourceTracker,
     VkCommandBufferBeginInfo* toTransform);
 
-void transform_VkBufferCopy(
+void transform_fromhost_VkCommandBufferBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferBeginInfo* toTransform);
+
+void transform_tohost_VkBufferCopy(
     ResourceTracker* resourceTracker,
     VkBufferCopy* toTransform);
 
-void transform_VkImageSubresourceLayers(
+void transform_fromhost_VkBufferCopy(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy* toTransform);
+
+void transform_tohost_VkImageSubresourceLayers(
     ResourceTracker* resourceTracker,
     VkImageSubresourceLayers* toTransform);
 
-void transform_VkImageCopy(
+void transform_fromhost_VkImageSubresourceLayers(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceLayers* toTransform);
+
+void transform_tohost_VkImageCopy(
     ResourceTracker* resourceTracker,
     VkImageCopy* toTransform);
 
-void transform_VkImageBlit(
+void transform_fromhost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform);
+
+void transform_tohost_VkImageBlit(
     ResourceTracker* resourceTracker,
     VkImageBlit* toTransform);
 
-void transform_VkBufferImageCopy(
+void transform_fromhost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform);
+
+void transform_tohost_VkBufferImageCopy(
     ResourceTracker* resourceTracker,
     VkBufferImageCopy* toTransform);
 
-void transform_VkClearColorValue(
+void transform_fromhost_VkBufferImageCopy(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy* toTransform);
+
+void transform_tohost_VkClearColorValue(
     ResourceTracker* resourceTracker,
     VkClearColorValue* toTransform);
 
-void transform_VkClearDepthStencilValue(
+void transform_fromhost_VkClearColorValue(
+    ResourceTracker* resourceTracker,
+    VkClearColorValue* toTransform);
+
+void transform_tohost_VkClearDepthStencilValue(
     ResourceTracker* resourceTracker,
     VkClearDepthStencilValue* toTransform);
 
-void transform_VkClearValue(
+void transform_fromhost_VkClearDepthStencilValue(
+    ResourceTracker* resourceTracker,
+    VkClearDepthStencilValue* toTransform);
+
+void transform_tohost_VkClearValue(
     ResourceTracker* resourceTracker,
     VkClearValue* toTransform);
 
-void transform_VkClearAttachment(
+void transform_fromhost_VkClearValue(
+    ResourceTracker* resourceTracker,
+    VkClearValue* toTransform);
+
+void transform_tohost_VkClearAttachment(
     ResourceTracker* resourceTracker,
     VkClearAttachment* toTransform);
 
-void transform_VkClearRect(
+void transform_fromhost_VkClearAttachment(
+    ResourceTracker* resourceTracker,
+    VkClearAttachment* toTransform);
+
+void transform_tohost_VkClearRect(
     ResourceTracker* resourceTracker,
     VkClearRect* toTransform);
 
-void transform_VkImageResolve(
+void transform_fromhost_VkClearRect(
+    ResourceTracker* resourceTracker,
+    VkClearRect* toTransform);
+
+void transform_tohost_VkImageResolve(
     ResourceTracker* resourceTracker,
     VkImageResolve* toTransform);
 
-void transform_VkMemoryBarrier(
+void transform_fromhost_VkImageResolve(
+    ResourceTracker* resourceTracker,
+    VkImageResolve* toTransform);
+
+void transform_tohost_VkMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkMemoryBarrier* toTransform);
 
-void transform_VkBufferMemoryBarrier(
+void transform_fromhost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform);
+
+void transform_tohost_VkBufferMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkBufferMemoryBarrier* toTransform);
 
-void transform_VkImageMemoryBarrier(
+void transform_fromhost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform);
+
+void transform_tohost_VkImageMemoryBarrier(
     ResourceTracker* resourceTracker,
     VkImageMemoryBarrier* toTransform);
 
-void transform_VkRenderPassBeginInfo(
+void transform_fromhost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform);
+
+void transform_tohost_VkRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassBeginInfo* toTransform);
 
-void transform_VkDispatchIndirectCommand(
+void transform_fromhost_VkRenderPassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassBeginInfo* toTransform);
+
+void transform_tohost_VkDispatchIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDispatchIndirectCommand* toTransform);
 
-void transform_VkDrawIndexedIndirectCommand(
+void transform_fromhost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform);
+
+void transform_tohost_VkDrawIndexedIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDrawIndexedIndirectCommand* toTransform);
 
-void transform_VkDrawIndirectCommand(
+void transform_fromhost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform);
+
+void transform_tohost_VkDrawIndirectCommand(
     ResourceTracker* resourceTracker,
     VkDrawIndirectCommand* toTransform);
 
-void transform_VkBaseOutStructure(
+void transform_fromhost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform);
+
+void transform_tohost_VkBaseOutStructure(
     ResourceTracker* resourceTracker,
     VkBaseOutStructure* toTransform);
 
-void transform_VkBaseInStructure(
+void transform_fromhost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform);
+
+void transform_tohost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform);
+
+void transform_fromhost_VkBaseInStructure(
     ResourceTracker* resourceTracker,
     VkBaseInStructure* toTransform);
 
 #endif
 #ifdef VK_VERSION_1_1
-void transform_VkPhysicalDeviceSubgroupProperties(
+void transform_tohost_VkPhysicalDeviceSubgroupProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSubgroupProperties* toTransform);
 
-void transform_VkBindBufferMemoryInfo(
+void transform_fromhost_VkPhysicalDeviceSubgroupProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupProperties* toTransform);
+
+void transform_tohost_VkBindBufferMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindBufferMemoryInfo* toTransform);
 
-void transform_VkBindImageMemoryInfo(
+void transform_fromhost_VkBindBufferMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindBufferMemoryInfo* toTransform);
+
+void transform_tohost_VkBindImageMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindImageMemoryInfo* toTransform);
 
-void transform_VkPhysicalDevice16BitStorageFeatures(
+void transform_fromhost_VkBindImageMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemoryInfo* toTransform);
+
+void transform_tohost_VkPhysicalDevice16BitStorageFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDevice16BitStorageFeatures* toTransform);
 
-void transform_VkMemoryDedicatedRequirements(
+void transform_fromhost_VkPhysicalDevice16BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice16BitStorageFeatures* toTransform);
+
+void transform_tohost_VkMemoryDedicatedRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryDedicatedRequirements* toTransform);
 
-void transform_VkMemoryDedicatedAllocateInfo(
+void transform_fromhost_VkMemoryDedicatedRequirements(
+    ResourceTracker* resourceTracker,
+    VkMemoryDedicatedRequirements* toTransform);
+
+void transform_tohost_VkMemoryDedicatedAllocateInfo(
     ResourceTracker* resourceTracker,
     VkMemoryDedicatedAllocateInfo* toTransform);
 
-void transform_VkMemoryAllocateFlagsInfo(
+void transform_fromhost_VkMemoryDedicatedAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryDedicatedAllocateInfo* toTransform);
+
+void transform_tohost_VkMemoryAllocateFlagsInfo(
     ResourceTracker* resourceTracker,
     VkMemoryAllocateFlagsInfo* toTransform);
 
-void transform_VkDeviceGroupRenderPassBeginInfo(
+void transform_fromhost_VkMemoryAllocateFlagsInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateFlagsInfo* toTransform);
+
+void transform_tohost_VkDeviceGroupRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupRenderPassBeginInfo* toTransform);
 
-void transform_VkDeviceGroupCommandBufferBeginInfo(
+void transform_fromhost_VkDeviceGroupRenderPassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupRenderPassBeginInfo* toTransform);
+
+void transform_tohost_VkDeviceGroupCommandBufferBeginInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupCommandBufferBeginInfo* toTransform);
 
-void transform_VkDeviceGroupSubmitInfo(
+void transform_fromhost_VkDeviceGroupCommandBufferBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupCommandBufferBeginInfo* toTransform);
+
+void transform_tohost_VkDeviceGroupSubmitInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupSubmitInfo* toTransform);
 
-void transform_VkDeviceGroupBindSparseInfo(
+void transform_fromhost_VkDeviceGroupSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupSubmitInfo* toTransform);
+
+void transform_tohost_VkDeviceGroupBindSparseInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupBindSparseInfo* toTransform);
 
-void transform_VkBindBufferMemoryDeviceGroupInfo(
+void transform_fromhost_VkDeviceGroupBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupBindSparseInfo* toTransform);
+
+void transform_tohost_VkBindBufferMemoryDeviceGroupInfo(
     ResourceTracker* resourceTracker,
     VkBindBufferMemoryDeviceGroupInfo* toTransform);
 
-void transform_VkBindImageMemoryDeviceGroupInfo(
+void transform_fromhost_VkBindBufferMemoryDeviceGroupInfo(
+    ResourceTracker* resourceTracker,
+    VkBindBufferMemoryDeviceGroupInfo* toTransform);
+
+void transform_tohost_VkBindImageMemoryDeviceGroupInfo(
     ResourceTracker* resourceTracker,
     VkBindImageMemoryDeviceGroupInfo* toTransform);
 
-void transform_VkPhysicalDeviceGroupProperties(
+void transform_fromhost_VkBindImageMemoryDeviceGroupInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemoryDeviceGroupInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceGroupProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceGroupProperties* toTransform);
 
-void transform_VkDeviceGroupDeviceCreateInfo(
+void transform_fromhost_VkPhysicalDeviceGroupProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGroupProperties* toTransform);
+
+void transform_tohost_VkDeviceGroupDeviceCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceGroupDeviceCreateInfo* toTransform);
 
-void transform_VkBufferMemoryRequirementsInfo2(
+void transform_fromhost_VkDeviceGroupDeviceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupDeviceCreateInfo* toTransform);
+
+void transform_tohost_VkBufferMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkBufferMemoryRequirementsInfo2* toTransform);
 
-void transform_VkImageMemoryRequirementsInfo2(
+void transform_fromhost_VkBufferMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryRequirementsInfo2* toTransform);
+
+void transform_tohost_VkImageMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkImageMemoryRequirementsInfo2* toTransform);
 
-void transform_VkImageSparseMemoryRequirementsInfo2(
+void transform_fromhost_VkImageMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryRequirementsInfo2* toTransform);
+
+void transform_tohost_VkImageSparseMemoryRequirementsInfo2(
     ResourceTracker* resourceTracker,
     VkImageSparseMemoryRequirementsInfo2* toTransform);
 
-void transform_VkMemoryRequirements2(
+void transform_fromhost_VkImageSparseMemoryRequirementsInfo2(
+    ResourceTracker* resourceTracker,
+    VkImageSparseMemoryRequirementsInfo2* toTransform);
+
+void transform_tohost_VkMemoryRequirements2(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements2* toTransform);
 
-void transform_VkSparseImageMemoryRequirements2(
+void transform_fromhost_VkMemoryRequirements2(
+    ResourceTracker* resourceTracker,
+    VkMemoryRequirements2* toTransform);
+
+void transform_tohost_VkSparseImageMemoryRequirements2(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryRequirements2* toTransform);
 
-void transform_VkPhysicalDeviceFeatures2(
+void transform_fromhost_VkSparseImageMemoryRequirements2(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements2* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFeatures2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceFeatures2* toTransform);
 
-void transform_VkPhysicalDeviceProperties2(
+void transform_fromhost_VkPhysicalDeviceFeatures2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures2* toTransform);
+
+void transform_tohost_VkPhysicalDeviceProperties2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProperties2* toTransform);
 
-void transform_VkFormatProperties2(
+void transform_fromhost_VkPhysicalDeviceProperties2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProperties2* toTransform);
+
+void transform_tohost_VkFormatProperties2(
     ResourceTracker* resourceTracker,
     VkFormatProperties2* toTransform);
 
-void transform_VkImageFormatProperties2(
+void transform_fromhost_VkFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties2* toTransform);
+
+void transform_tohost_VkImageFormatProperties2(
     ResourceTracker* resourceTracker,
     VkImageFormatProperties2* toTransform);
 
-void transform_VkPhysicalDeviceImageFormatInfo2(
+void transform_fromhost_VkImageFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties2* toTransform);
+
+void transform_tohost_VkPhysicalDeviceImageFormatInfo2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceImageFormatInfo2* toTransform);
 
-void transform_VkQueueFamilyProperties2(
+void transform_fromhost_VkPhysicalDeviceImageFormatInfo2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageFormatInfo2* toTransform);
+
+void transform_tohost_VkQueueFamilyProperties2(
     ResourceTracker* resourceTracker,
     VkQueueFamilyProperties2* toTransform);
 
-void transform_VkPhysicalDeviceMemoryProperties2(
+void transform_fromhost_VkQueueFamilyProperties2(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyProperties2* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMemoryProperties2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMemoryProperties2* toTransform);
 
-void transform_VkSparseImageFormatProperties2(
+void transform_fromhost_VkPhysicalDeviceMemoryProperties2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties2* toTransform);
+
+void transform_tohost_VkSparseImageFormatProperties2(
     ResourceTracker* resourceTracker,
     VkSparseImageFormatProperties2* toTransform);
 
-void transform_VkPhysicalDeviceSparseImageFormatInfo2(
+void transform_fromhost_VkSparseImageFormatProperties2(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties2* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseImageFormatInfo2* toTransform);
 
-void transform_VkPhysicalDevicePointClippingProperties(
+void transform_fromhost_VkPhysicalDeviceSparseImageFormatInfo2(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSparseImageFormatInfo2* toTransform);
+
+void transform_tohost_VkPhysicalDevicePointClippingProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDevicePointClippingProperties* toTransform);
 
-void transform_VkInputAttachmentAspectReference(
+void transform_fromhost_VkPhysicalDevicePointClippingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePointClippingProperties* toTransform);
+
+void transform_tohost_VkInputAttachmentAspectReference(
     ResourceTracker* resourceTracker,
     VkInputAttachmentAspectReference* toTransform);
 
-void transform_VkRenderPassInputAttachmentAspectCreateInfo(
+void transform_fromhost_VkInputAttachmentAspectReference(
+    ResourceTracker* resourceTracker,
+    VkInputAttachmentAspectReference* toTransform);
+
+void transform_tohost_VkRenderPassInputAttachmentAspectCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassInputAttachmentAspectCreateInfo* toTransform);
 
-void transform_VkImageViewUsageCreateInfo(
+void transform_fromhost_VkRenderPassInputAttachmentAspectCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassInputAttachmentAspectCreateInfo* toTransform);
+
+void transform_tohost_VkImageViewUsageCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewUsageCreateInfo* toTransform);
 
-void transform_VkPipelineTessellationDomainOriginStateCreateInfo(
+void transform_fromhost_VkImageViewUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageViewUsageCreateInfo* toTransform);
+
+void transform_tohost_VkPipelineTessellationDomainOriginStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineTessellationDomainOriginStateCreateInfo* toTransform);
 
-void transform_VkRenderPassMultiviewCreateInfo(
+void transform_fromhost_VkPipelineTessellationDomainOriginStateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkPipelineTessellationDomainOriginStateCreateInfo* toTransform);
+
+void transform_tohost_VkRenderPassMultiviewCreateInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassMultiviewCreateInfo* toTransform);
 
-void transform_VkPhysicalDeviceMultiviewFeatures(
+void transform_fromhost_VkRenderPassMultiviewCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassMultiviewCreateInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMultiviewFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewFeatures* toTransform);
 
-void transform_VkPhysicalDeviceMultiviewProperties(
+void transform_fromhost_VkPhysicalDeviceMultiviewFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMultiviewProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewProperties* toTransform);
 
-void transform_VkPhysicalDeviceVariablePointerFeatures(
+void transform_fromhost_VkPhysicalDeviceMultiviewProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVariablePointerFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceVariablePointerFeatures* toTransform);
 
-void transform_VkPhysicalDeviceProtectedMemoryFeatures(
+void transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVariablePointerFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceProtectedMemoryFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProtectedMemoryFeatures* toTransform);
 
-void transform_VkPhysicalDeviceProtectedMemoryProperties(
+void transform_fromhost_VkPhysicalDeviceProtectedMemoryFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProtectedMemoryFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceProtectedMemoryProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceProtectedMemoryProperties* toTransform);
 
-void transform_VkDeviceQueueInfo2(
+void transform_fromhost_VkPhysicalDeviceProtectedMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProtectedMemoryProperties* toTransform);
+
+void transform_tohost_VkDeviceQueueInfo2(
     ResourceTracker* resourceTracker,
     VkDeviceQueueInfo2* toTransform);
 
-void transform_VkProtectedSubmitInfo(
+void transform_fromhost_VkDeviceQueueInfo2(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueInfo2* toTransform);
+
+void transform_tohost_VkProtectedSubmitInfo(
     ResourceTracker* resourceTracker,
     VkProtectedSubmitInfo* toTransform);
 
-void transform_VkSamplerYcbcrConversionCreateInfo(
+void transform_fromhost_VkProtectedSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkProtectedSubmitInfo* toTransform);
+
+void transform_tohost_VkSamplerYcbcrConversionCreateInfo(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionCreateInfo* toTransform);
 
-void transform_VkSamplerYcbcrConversionInfo(
+void transform_fromhost_VkSamplerYcbcrConversionCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionCreateInfo* toTransform);
+
+void transform_tohost_VkSamplerYcbcrConversionInfo(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionInfo* toTransform);
 
-void transform_VkBindImagePlaneMemoryInfo(
+void transform_fromhost_VkSamplerYcbcrConversionInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionInfo* toTransform);
+
+void transform_tohost_VkBindImagePlaneMemoryInfo(
     ResourceTracker* resourceTracker,
     VkBindImagePlaneMemoryInfo* toTransform);
 
-void transform_VkImagePlaneMemoryRequirementsInfo(
+void transform_fromhost_VkBindImagePlaneMemoryInfo(
+    ResourceTracker* resourceTracker,
+    VkBindImagePlaneMemoryInfo* toTransform);
+
+void transform_tohost_VkImagePlaneMemoryRequirementsInfo(
     ResourceTracker* resourceTracker,
     VkImagePlaneMemoryRequirementsInfo* toTransform);
 
-void transform_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
+void transform_fromhost_VkImagePlaneMemoryRequirementsInfo(
+    ResourceTracker* resourceTracker,
+    VkImagePlaneMemoryRequirementsInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSamplerYcbcrConversionFeatures* toTransform);
 
-void transform_VkSamplerYcbcrConversionImageFormatProperties(
+void transform_fromhost_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerYcbcrConversionFeatures* toTransform);
+
+void transform_tohost_VkSamplerYcbcrConversionImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkSamplerYcbcrConversionImageFormatProperties* toTransform);
 
-void transform_VkDescriptorUpdateTemplateEntry(
+void transform_fromhost_VkSamplerYcbcrConversionImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSamplerYcbcrConversionImageFormatProperties* toTransform);
+
+void transform_tohost_VkDescriptorUpdateTemplateEntry(
     ResourceTracker* resourceTracker,
     VkDescriptorUpdateTemplateEntry* toTransform);
 
-void transform_VkDescriptorUpdateTemplateCreateInfo(
+void transform_fromhost_VkDescriptorUpdateTemplateEntry(
+    ResourceTracker* resourceTracker,
+    VkDescriptorUpdateTemplateEntry* toTransform);
+
+void transform_tohost_VkDescriptorUpdateTemplateCreateInfo(
     ResourceTracker* resourceTracker,
     VkDescriptorUpdateTemplateCreateInfo* toTransform);
 
-void transform_VkExternalMemoryProperties(
+void transform_fromhost_VkDescriptorUpdateTemplateCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorUpdateTemplateCreateInfo* toTransform);
+
+void transform_tohost_VkExternalMemoryProperties(
     ResourceTracker* resourceTracker,
     VkExternalMemoryProperties* toTransform);
 
-void transform_VkPhysicalDeviceExternalImageFormatInfo(
+void transform_fromhost_VkExternalMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalImageFormatInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalImageFormatInfo* toTransform);
 
-void transform_VkExternalImageFormatProperties(
+void transform_fromhost_VkPhysicalDeviceExternalImageFormatInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalImageFormatInfo* toTransform);
+
+void transform_tohost_VkExternalImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkExternalImageFormatProperties* toTransform);
 
-void transform_VkPhysicalDeviceExternalBufferInfo(
+void transform_fromhost_VkExternalImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalImageFormatProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalBufferInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalBufferInfo* toTransform);
 
-void transform_VkExternalBufferProperties(
+void transform_fromhost_VkPhysicalDeviceExternalBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalBufferInfo* toTransform);
+
+void transform_tohost_VkExternalBufferProperties(
     ResourceTracker* resourceTracker,
     VkExternalBufferProperties* toTransform);
 
-void transform_VkPhysicalDeviceIDProperties(
+void transform_fromhost_VkExternalBufferProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalBufferProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceIDProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceIDProperties* toTransform);
 
-void transform_VkExternalMemoryImageCreateInfo(
+void transform_fromhost_VkPhysicalDeviceIDProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIDProperties* toTransform);
+
+void transform_tohost_VkExternalMemoryImageCreateInfo(
     ResourceTracker* resourceTracker,
     VkExternalMemoryImageCreateInfo* toTransform);
 
-void transform_VkExternalMemoryBufferCreateInfo(
+void transform_fromhost_VkExternalMemoryImageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryImageCreateInfo* toTransform);
+
+void transform_tohost_VkExternalMemoryBufferCreateInfo(
     ResourceTracker* resourceTracker,
     VkExternalMemoryBufferCreateInfo* toTransform);
 
-void transform_VkExportMemoryAllocateInfo(
+void transform_fromhost_VkExternalMemoryBufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryBufferCreateInfo* toTransform);
+
+void transform_tohost_VkExportMemoryAllocateInfo(
     ResourceTracker* resourceTracker,
     VkExportMemoryAllocateInfo* toTransform);
 
-void transform_VkPhysicalDeviceExternalFenceInfo(
+void transform_fromhost_VkExportMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryAllocateInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalFenceInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalFenceInfo* toTransform);
 
-void transform_VkExternalFenceProperties(
+void transform_fromhost_VkPhysicalDeviceExternalFenceInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalFenceInfo* toTransform);
+
+void transform_tohost_VkExternalFenceProperties(
     ResourceTracker* resourceTracker,
     VkExternalFenceProperties* toTransform);
 
-void transform_VkExportFenceCreateInfo(
+void transform_fromhost_VkExternalFenceProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalFenceProperties* toTransform);
+
+void transform_tohost_VkExportFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkExportFenceCreateInfo* toTransform);
 
-void transform_VkExportSemaphoreCreateInfo(
+void transform_fromhost_VkExportFenceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportFenceCreateInfo* toTransform);
+
+void transform_tohost_VkExportSemaphoreCreateInfo(
     ResourceTracker* resourceTracker,
     VkExportSemaphoreCreateInfo* toTransform);
 
-void transform_VkPhysicalDeviceExternalSemaphoreInfo(
+void transform_fromhost_VkExportSemaphoreCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkExportSemaphoreCreateInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalSemaphoreInfo* toTransform);
 
-void transform_VkExternalSemaphoreProperties(
+void transform_fromhost_VkPhysicalDeviceExternalSemaphoreInfo(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalSemaphoreInfo* toTransform);
+
+void transform_tohost_VkExternalSemaphoreProperties(
     ResourceTracker* resourceTracker,
     VkExternalSemaphoreProperties* toTransform);
 
-void transform_VkPhysicalDeviceMaintenance3Properties(
+void transform_fromhost_VkExternalSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkExternalSemaphoreProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMaintenance3Properties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMaintenance3Properties* toTransform);
 
-void transform_VkDescriptorSetLayoutSupport(
+void transform_fromhost_VkPhysicalDeviceMaintenance3Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance3Properties* toTransform);
+
+void transform_tohost_VkDescriptorSetLayoutSupport(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutSupport* toTransform);
 
-void transform_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_fromhost_VkDescriptorSetLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutSupport* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceShaderDrawParameterFeatures* toTransform);
 
 #endif
 #ifdef VK_KHR_surface
-void transform_VkSurfaceCapabilitiesKHR(
+void transform_tohost_VkSurfaceCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilitiesKHR* toTransform);
 
-void transform_VkSurfaceFormatKHR(
+void transform_fromhost_VkSurfaceCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesKHR* toTransform);
+
+void transform_tohost_VkSurfaceFormatKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFormatKHR* toTransform);
+
+void transform_fromhost_VkSurfaceFormatKHR(
     ResourceTracker* resourceTracker,
     VkSurfaceFormatKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_swapchain
-void transform_VkSwapchainCreateInfoKHR(
+void transform_tohost_VkSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkSwapchainCreateInfoKHR* toTransform);
 
-void transform_VkPresentInfoKHR(
+void transform_fromhost_VkSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSwapchainCreateInfoKHR* toTransform);
+
+void transform_tohost_VkPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkPresentInfoKHR* toTransform);
 
-void transform_VkImageSwapchainCreateInfoKHR(
+void transform_fromhost_VkPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentInfoKHR* toTransform);
+
+void transform_tohost_VkImageSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkImageSwapchainCreateInfoKHR* toTransform);
 
-void transform_VkBindImageMemorySwapchainInfoKHR(
+void transform_fromhost_VkImageSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImageSwapchainCreateInfoKHR* toTransform);
+
+void transform_tohost_VkBindImageMemorySwapchainInfoKHR(
     ResourceTracker* resourceTracker,
     VkBindImageMemorySwapchainInfoKHR* toTransform);
 
-void transform_VkAcquireNextImageInfoKHR(
+void transform_fromhost_VkBindImageMemorySwapchainInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkBindImageMemorySwapchainInfoKHR* toTransform);
+
+void transform_tohost_VkAcquireNextImageInfoKHR(
     ResourceTracker* resourceTracker,
     VkAcquireNextImageInfoKHR* toTransform);
 
-void transform_VkDeviceGroupPresentCapabilitiesKHR(
+void transform_fromhost_VkAcquireNextImageInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireNextImageInfoKHR* toTransform);
+
+void transform_tohost_VkDeviceGroupPresentCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupPresentCapabilitiesKHR* toTransform);
 
-void transform_VkDeviceGroupPresentInfoKHR(
+void transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupPresentCapabilitiesKHR* toTransform);
+
+void transform_tohost_VkDeviceGroupPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupPresentInfoKHR* toTransform);
 
-void transform_VkDeviceGroupSwapchainCreateInfoKHR(
+void transform_fromhost_VkDeviceGroupPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupPresentInfoKHR* toTransform);
+
+void transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceGroupSwapchainCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDeviceGroupSwapchainCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_display
-void transform_VkDisplayPropertiesKHR(
+void transform_tohost_VkDisplayPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPropertiesKHR* toTransform);
 
-void transform_VkDisplayModeParametersKHR(
+void transform_fromhost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform);
+
+void transform_tohost_VkDisplayModeParametersKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeParametersKHR* toTransform);
 
-void transform_VkDisplayModePropertiesKHR(
+void transform_fromhost_VkDisplayModeParametersKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeParametersKHR* toTransform);
+
+void transform_tohost_VkDisplayModePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModePropertiesKHR* toTransform);
 
-void transform_VkDisplayModeCreateInfoKHR(
+void transform_fromhost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform);
+
+void transform_tohost_VkDisplayModeCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeCreateInfoKHR* toTransform);
 
-void transform_VkDisplayPlaneCapabilitiesKHR(
+void transform_fromhost_VkDisplayModeCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeCreateInfoKHR* toTransform);
+
+void transform_tohost_VkDisplayPlaneCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilitiesKHR* toTransform);
 
-void transform_VkDisplayPlanePropertiesKHR(
+void transform_fromhost_VkDisplayPlaneCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneCapabilitiesKHR* toTransform);
+
+void transform_tohost_VkDisplayPlanePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlanePropertiesKHR* toTransform);
 
-void transform_VkDisplaySurfaceCreateInfoKHR(
+void transform_fromhost_VkDisplayPlanePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlanePropertiesKHR* toTransform);
+
+void transform_tohost_VkDisplaySurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplaySurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkDisplaySurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplaySurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_display_swapchain
-void transform_VkDisplayPresentInfoKHR(
+void transform_tohost_VkDisplayPresentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPresentInfoKHR* toTransform);
+
+void transform_fromhost_VkDisplayPresentInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPresentInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_xlib_surface
-void transform_VkXlibSurfaceCreateInfoKHR(
+void transform_tohost_VkXlibSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkXlibSurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkXlibSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkXlibSurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_xcb_surface
-void transform_VkXcbSurfaceCreateInfoKHR(
+void transform_tohost_VkXcbSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkXcbSurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkXcbSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkXcbSurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_wayland_surface
-void transform_VkWaylandSurfaceCreateInfoKHR(
+void transform_tohost_VkWaylandSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWaylandSurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkWaylandSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkWaylandSurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_mir_surface
-void transform_VkMirSurfaceCreateInfoKHR(
+void transform_tohost_VkMirSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMirSurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkMirSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkMirSurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_android_surface
-void transform_VkAndroidSurfaceCreateInfoKHR(
+void transform_tohost_VkAndroidSurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAndroidSurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkAndroidSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkAndroidSurfaceCreateInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_win32_surface
-void transform_VkWin32SurfaceCreateInfoKHR(
+void transform_tohost_VkWin32SurfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWin32SurfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkWin32SurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkWin32SurfaceCreateInfoKHR* toTransform);
 
@@ -881,39 +1686,71 @@
 #ifdef VK_KHR_external_memory
 #endif
 #ifdef VK_KHR_external_memory_win32
-void transform_VkImportMemoryWin32HandleInfoKHR(
+void transform_tohost_VkImportMemoryWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportMemoryWin32HandleInfoKHR* toTransform);
 
-void transform_VkExportMemoryWin32HandleInfoKHR(
+void transform_fromhost_VkImportMemoryWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkExportMemoryWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportMemoryWin32HandleInfoKHR* toTransform);
 
-void transform_VkMemoryWin32HandlePropertiesKHR(
+void transform_fromhost_VkExportMemoryWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkMemoryWin32HandlePropertiesKHR(
     ResourceTracker* resourceTracker,
     VkMemoryWin32HandlePropertiesKHR* toTransform);
 
-void transform_VkMemoryGetWin32HandleInfoKHR(
+void transform_fromhost_VkMemoryWin32HandlePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryWin32HandlePropertiesKHR* toTransform);
+
+void transform_tohost_VkMemoryGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetWin32HandleInfoKHR* toTransform);
+
+void transform_fromhost_VkMemoryGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkMemoryGetWin32HandleInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_external_memory_fd
-void transform_VkImportMemoryFdInfoKHR(
+void transform_tohost_VkImportMemoryFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportMemoryFdInfoKHR* toTransform);
 
-void transform_VkMemoryFdPropertiesKHR(
+void transform_fromhost_VkImportMemoryFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryFdInfoKHR* toTransform);
+
+void transform_tohost_VkMemoryFdPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkMemoryFdPropertiesKHR* toTransform);
 
-void transform_VkMemoryGetFdInfoKHR(
+void transform_fromhost_VkMemoryFdPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryFdPropertiesKHR* toTransform);
+
+void transform_tohost_VkMemoryGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetFdInfoKHR* toTransform);
+
+void transform_fromhost_VkMemoryGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkMemoryGetFdInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_win32_keyed_mutex
-void transform_VkWin32KeyedMutexAcquireReleaseInfoKHR(
+void transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkWin32KeyedMutexAcquireReleaseInfoKHR* toTransform);
+
+void transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoKHR(
     ResourceTracker* resourceTracker,
     VkWin32KeyedMutexAcquireReleaseInfoKHR* toTransform);
 
@@ -923,35 +1760,63 @@
 #ifdef VK_KHR_external_semaphore
 #endif
 #ifdef VK_KHR_external_semaphore_win32
-void transform_VkImportSemaphoreWin32HandleInfoKHR(
+void transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportSemaphoreWin32HandleInfoKHR* toTransform);
 
-void transform_VkExportSemaphoreWin32HandleInfoKHR(
+void transform_fromhost_VkImportSemaphoreWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkExportSemaphoreWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportSemaphoreWin32HandleInfoKHR* toTransform);
 
-void transform_VkD3D12FenceSubmitInfoKHR(
+void transform_fromhost_VkExportSemaphoreWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportSemaphoreWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkD3D12FenceSubmitInfoKHR(
     ResourceTracker* resourceTracker,
     VkD3D12FenceSubmitInfoKHR* toTransform);
 
-void transform_VkSemaphoreGetWin32HandleInfoKHR(
+void transform_fromhost_VkD3D12FenceSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkD3D12FenceSubmitInfoKHR* toTransform);
+
+void transform_tohost_VkSemaphoreGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetWin32HandleInfoKHR* toTransform);
+
+void transform_fromhost_VkSemaphoreGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkSemaphoreGetWin32HandleInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_external_semaphore_fd
-void transform_VkImportSemaphoreFdInfoKHR(
+void transform_tohost_VkImportSemaphoreFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportSemaphoreFdInfoKHR* toTransform);
 
-void transform_VkSemaphoreGetFdInfoKHR(
+void transform_fromhost_VkImportSemaphoreFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreFdInfoKHR* toTransform);
+
+void transform_tohost_VkSemaphoreGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetFdInfoKHR* toTransform);
+
+void transform_fromhost_VkSemaphoreGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkSemaphoreGetFdInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_push_descriptor
-void transform_VkPhysicalDevicePushDescriptorPropertiesKHR(
+void transform_tohost_VkPhysicalDevicePushDescriptorPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePushDescriptorPropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePushDescriptorPropertiesKHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDevicePushDescriptorPropertiesKHR* toTransform);
 
@@ -959,15 +1824,27 @@
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
-void transform_VkRectLayerKHR(
+void transform_tohost_VkRectLayerKHR(
     ResourceTracker* resourceTracker,
     VkRectLayerKHR* toTransform);
 
-void transform_VkPresentRegionKHR(
+void transform_fromhost_VkRectLayerKHR(
+    ResourceTracker* resourceTracker,
+    VkRectLayerKHR* toTransform);
+
+void transform_tohost_VkPresentRegionKHR(
     ResourceTracker* resourceTracker,
     VkPresentRegionKHR* toTransform);
 
-void transform_VkPresentRegionsKHR(
+void transform_fromhost_VkPresentRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentRegionKHR* toTransform);
+
+void transform_tohost_VkPresentRegionsKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentRegionsKHR* toTransform);
+
+void transform_fromhost_VkPresentRegionsKHR(
     ResourceTracker* resourceTracker,
     VkPresentRegionsKHR* toTransform);
 
@@ -975,37 +1852,69 @@
 #ifdef VK_KHR_descriptor_update_template
 #endif
 #ifdef VK_KHR_create_renderpass2
-void transform_VkAttachmentDescription2KHR(
+void transform_tohost_VkAttachmentDescription2KHR(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription2KHR* toTransform);
 
-void transform_VkAttachmentReference2KHR(
+void transform_fromhost_VkAttachmentDescription2KHR(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2KHR* toTransform);
+
+void transform_tohost_VkAttachmentReference2KHR(
     ResourceTracker* resourceTracker,
     VkAttachmentReference2KHR* toTransform);
 
-void transform_VkSubpassDescription2KHR(
+void transform_fromhost_VkAttachmentReference2KHR(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2KHR* toTransform);
+
+void transform_tohost_VkSubpassDescription2KHR(
     ResourceTracker* resourceTracker,
     VkSubpassDescription2KHR* toTransform);
 
-void transform_VkSubpassDependency2KHR(
+void transform_fromhost_VkSubpassDescription2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2KHR* toTransform);
+
+void transform_tohost_VkSubpassDependency2KHR(
     ResourceTracker* resourceTracker,
     VkSubpassDependency2KHR* toTransform);
 
-void transform_VkRenderPassCreateInfo2KHR(
+void transform_fromhost_VkSubpassDependency2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2KHR* toTransform);
+
+void transform_tohost_VkRenderPassCreateInfo2KHR(
     ResourceTracker* resourceTracker,
     VkRenderPassCreateInfo2KHR* toTransform);
 
-void transform_VkSubpassBeginInfoKHR(
+void transform_fromhost_VkRenderPassCreateInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2KHR* toTransform);
+
+void transform_tohost_VkSubpassBeginInfoKHR(
     ResourceTracker* resourceTracker,
     VkSubpassBeginInfoKHR* toTransform);
 
-void transform_VkSubpassEndInfoKHR(
+void transform_fromhost_VkSubpassBeginInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfoKHR* toTransform);
+
+void transform_tohost_VkSubpassEndInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfoKHR* toTransform);
+
+void transform_fromhost_VkSubpassEndInfoKHR(
     ResourceTracker* resourceTracker,
     VkSubpassEndInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
-void transform_VkSharedPresentSurfaceCapabilitiesKHR(
+void transform_tohost_VkSharedPresentSurfaceCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSharedPresentSurfaceCapabilitiesKHR* toTransform);
+
+void transform_fromhost_VkSharedPresentSurfaceCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkSharedPresentSurfaceCapabilitiesKHR* toTransform);
 
@@ -1015,25 +1924,45 @@
 #ifdef VK_KHR_external_fence
 #endif
 #ifdef VK_KHR_external_fence_win32
-void transform_VkImportFenceWin32HandleInfoKHR(
+void transform_tohost_VkImportFenceWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportFenceWin32HandleInfoKHR* toTransform);
 
-void transform_VkExportFenceWin32HandleInfoKHR(
+void transform_fromhost_VkImportFenceWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportFenceWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkExportFenceWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkExportFenceWin32HandleInfoKHR* toTransform);
 
-void transform_VkFenceGetWin32HandleInfoKHR(
+void transform_fromhost_VkExportFenceWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkExportFenceWin32HandleInfoKHR* toTransform);
+
+void transform_tohost_VkFenceGetWin32HandleInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFenceGetWin32HandleInfoKHR* toTransform);
+
+void transform_fromhost_VkFenceGetWin32HandleInfoKHR(
     ResourceTracker* resourceTracker,
     VkFenceGetWin32HandleInfoKHR* toTransform);
 
 #endif
 #ifdef VK_KHR_external_fence_fd
-void transform_VkImportFenceFdInfoKHR(
+void transform_tohost_VkImportFenceFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkImportFenceFdInfoKHR* toTransform);
 
-void transform_VkFenceGetFdInfoKHR(
+void transform_fromhost_VkImportFenceFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImportFenceFdInfoKHR* toTransform);
+
+void transform_tohost_VkFenceGetFdInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFenceGetFdInfoKHR* toTransform);
+
+void transform_fromhost_VkFenceGetFdInfoKHR(
     ResourceTracker* resourceTracker,
     VkFenceGetFdInfoKHR* toTransform);
 
@@ -1041,15 +1970,27 @@
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
-void transform_VkPhysicalDeviceSurfaceInfo2KHR(
+void transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSurfaceInfo2KHR* toTransform);
 
-void transform_VkSurfaceCapabilities2KHR(
+void transform_fromhost_VkPhysicalDeviceSurfaceInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSurfaceInfo2KHR* toTransform);
+
+void transform_tohost_VkSurfaceCapabilities2KHR(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilities2KHR* toTransform);
 
-void transform_VkSurfaceFormat2KHR(
+void transform_fromhost_VkSurfaceCapabilities2KHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilities2KHR* toTransform);
+
+void transform_tohost_VkSurfaceFormat2KHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFormat2KHR* toTransform);
+
+void transform_fromhost_VkSurfaceFormat2KHR(
     ResourceTracker* resourceTracker,
     VkSurfaceFormat2KHR* toTransform);
 
@@ -1057,23 +1998,43 @@
 #ifdef VK_KHR_variable_pointers
 #endif
 #ifdef VK_KHR_get_display_properties2
-void transform_VkDisplayProperties2KHR(
+void transform_tohost_VkDisplayProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayProperties2KHR* toTransform);
 
-void transform_VkDisplayPlaneProperties2KHR(
+void transform_fromhost_VkDisplayProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayProperties2KHR* toTransform);
+
+void transform_tohost_VkDisplayPlaneProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneProperties2KHR* toTransform);
 
-void transform_VkDisplayModeProperties2KHR(
+void transform_fromhost_VkDisplayPlaneProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneProperties2KHR* toTransform);
+
+void transform_tohost_VkDisplayModeProperties2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeProperties2KHR* toTransform);
 
-void transform_VkDisplayPlaneInfo2KHR(
+void transform_fromhost_VkDisplayModeProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModeProperties2KHR* toTransform);
+
+void transform_tohost_VkDisplayPlaneInfo2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneInfo2KHR* toTransform);
 
-void transform_VkDisplayPlaneCapabilities2KHR(
+void transform_fromhost_VkDisplayPlaneInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneInfo2KHR* toTransform);
+
+void transform_tohost_VkDisplayPlaneCapabilities2KHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPlaneCapabilities2KHR* toTransform);
+
+void transform_fromhost_VkDisplayPlaneCapabilities2KHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilities2KHR* toTransform);
 
@@ -1087,7 +2048,11 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void transform_VkImageFormatListCreateInfoKHR(
+void transform_tohost_VkImageFormatListCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkImageFormatListCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkImageFormatListCreateInfoKHR* toTransform);
 
@@ -1101,19 +2066,31 @@
 #ifdef VK_KHR_draw_indirect_count
 #endif
 #ifdef VK_KHR_8bit_storage
-void transform_VkPhysicalDevice8BitStorageFeaturesKHR(
+void transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(
     ResourceTracker* resourceTracker,
     VkPhysicalDevice8BitStorageFeaturesKHR* toTransform);
 
 #endif
 #ifdef VK_ANDROID_native_buffer
-void transform_VkNativeBufferANDROID(
+void transform_tohost_VkNativeBufferANDROID(
+    ResourceTracker* resourceTracker,
+    VkNativeBufferANDROID* toTransform);
+
+void transform_fromhost_VkNativeBufferANDROID(
     ResourceTracker* resourceTracker,
     VkNativeBufferANDROID* toTransform);
 
 #endif
 #ifdef VK_EXT_debug_report
-void transform_VkDebugReportCallbackCreateInfoEXT(
+void transform_tohost_VkDebugReportCallbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugReportCallbackCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDebugReportCallbackCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugReportCallbackCreateInfoEXT* toTransform);
 
@@ -1125,7 +2102,11 @@
 #ifdef VK_IMG_filter_cubic
 #endif
 #ifdef VK_AMD_rasterization_order
-void transform_VkPipelineRasterizationStateRasterizationOrderAMD(
+void transform_tohost_VkPipelineRasterizationStateRasterizationOrderAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateRasterizationOrderAMD* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationStateRasterizationOrderAMD(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationStateRasterizationOrderAMD* toTransform);
 
@@ -1135,15 +2116,27 @@
 #ifdef VK_AMD_shader_explicit_vertex_parameter
 #endif
 #ifdef VK_EXT_debug_marker
-void transform_VkDebugMarkerObjectNameInfoEXT(
+void transform_tohost_VkDebugMarkerObjectNameInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerObjectNameInfoEXT* toTransform);
 
-void transform_VkDebugMarkerObjectTagInfoEXT(
+void transform_fromhost_VkDebugMarkerObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerObjectNameInfoEXT* toTransform);
+
+void transform_tohost_VkDebugMarkerObjectTagInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerObjectTagInfoEXT* toTransform);
 
-void transform_VkDebugMarkerMarkerInfoEXT(
+void transform_fromhost_VkDebugMarkerObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerObjectTagInfoEXT* toTransform);
+
+void transform_tohost_VkDebugMarkerMarkerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugMarkerMarkerInfoEXT* toTransform);
+
+void transform_fromhost_VkDebugMarkerMarkerInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugMarkerMarkerInfoEXT* toTransform);
 
@@ -1151,15 +2144,27 @@
 #ifdef VK_AMD_gcn_shader
 #endif
 #ifdef VK_NV_dedicated_allocation
-void transform_VkDedicatedAllocationImageCreateInfoNV(
+void transform_tohost_VkDedicatedAllocationImageCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationImageCreateInfoNV* toTransform);
 
-void transform_VkDedicatedAllocationBufferCreateInfoNV(
+void transform_fromhost_VkDedicatedAllocationImageCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationImageCreateInfoNV* toTransform);
+
+void transform_tohost_VkDedicatedAllocationBufferCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationBufferCreateInfoNV* toTransform);
 
-void transform_VkDedicatedAllocationMemoryAllocateInfoNV(
+void transform_fromhost_VkDedicatedAllocationBufferCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationBufferCreateInfoNV* toTransform);
+
+void transform_tohost_VkDedicatedAllocationMemoryAllocateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDedicatedAllocationMemoryAllocateInfoNV* toTransform);
+
+void transform_fromhost_VkDedicatedAllocationMemoryAllocateInfoNV(
     ResourceTracker* resourceTracker,
     VkDedicatedAllocationMemoryAllocateInfoNV* toTransform);
 
@@ -1173,17 +2178,29 @@
 #ifdef VK_AMD_shader_ballot
 #endif
 #ifdef VK_AMD_texture_gather_bias_lod
-void transform_VkTextureLODGatherFormatPropertiesAMD(
+void transform_tohost_VkTextureLODGatherFormatPropertiesAMD(
+    ResourceTracker* resourceTracker,
+    VkTextureLODGatherFormatPropertiesAMD* toTransform);
+
+void transform_fromhost_VkTextureLODGatherFormatPropertiesAMD(
     ResourceTracker* resourceTracker,
     VkTextureLODGatherFormatPropertiesAMD* toTransform);
 
 #endif
 #ifdef VK_AMD_shader_info
-void transform_VkShaderResourceUsageAMD(
+void transform_tohost_VkShaderResourceUsageAMD(
     ResourceTracker* resourceTracker,
     VkShaderResourceUsageAMD* toTransform);
 
-void transform_VkShaderStatisticsInfoAMD(
+void transform_fromhost_VkShaderResourceUsageAMD(
+    ResourceTracker* resourceTracker,
+    VkShaderResourceUsageAMD* toTransform);
+
+void transform_tohost_VkShaderStatisticsInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkShaderStatisticsInfoAMD* toTransform);
+
+void transform_fromhost_VkShaderStatisticsInfoAMD(
     ResourceTracker* resourceTracker,
     VkShaderStatisticsInfoAMD* toTransform);
 
@@ -1193,45 +2210,77 @@
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
-void transform_VkExternalImageFormatPropertiesNV(
+void transform_tohost_VkExternalImageFormatPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkExternalImageFormatPropertiesNV* toTransform);
+
+void transform_fromhost_VkExternalImageFormatPropertiesNV(
     ResourceTracker* resourceTracker,
     VkExternalImageFormatPropertiesNV* toTransform);
 
 #endif
 #ifdef VK_NV_external_memory
-void transform_VkExternalMemoryImageCreateInfoNV(
+void transform_tohost_VkExternalMemoryImageCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkExternalMemoryImageCreateInfoNV* toTransform);
 
-void transform_VkExportMemoryAllocateInfoNV(
+void transform_fromhost_VkExternalMemoryImageCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExternalMemoryImageCreateInfoNV* toTransform);
+
+void transform_tohost_VkExportMemoryAllocateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryAllocateInfoNV* toTransform);
+
+void transform_fromhost_VkExportMemoryAllocateInfoNV(
     ResourceTracker* resourceTracker,
     VkExportMemoryAllocateInfoNV* toTransform);
 
 #endif
 #ifdef VK_NV_external_memory_win32
-void transform_VkImportMemoryWin32HandleInfoNV(
+void transform_tohost_VkImportMemoryWin32HandleInfoNV(
     ResourceTracker* resourceTracker,
     VkImportMemoryWin32HandleInfoNV* toTransform);
 
-void transform_VkExportMemoryWin32HandleInfoNV(
+void transform_fromhost_VkImportMemoryWin32HandleInfoNV(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryWin32HandleInfoNV* toTransform);
+
+void transform_tohost_VkExportMemoryWin32HandleInfoNV(
+    ResourceTracker* resourceTracker,
+    VkExportMemoryWin32HandleInfoNV* toTransform);
+
+void transform_fromhost_VkExportMemoryWin32HandleInfoNV(
     ResourceTracker* resourceTracker,
     VkExportMemoryWin32HandleInfoNV* toTransform);
 
 #endif
 #ifdef VK_NV_win32_keyed_mutex
-void transform_VkWin32KeyedMutexAcquireReleaseInfoNV(
+void transform_tohost_VkWin32KeyedMutexAcquireReleaseInfoNV(
+    ResourceTracker* resourceTracker,
+    VkWin32KeyedMutexAcquireReleaseInfoNV* toTransform);
+
+void transform_fromhost_VkWin32KeyedMutexAcquireReleaseInfoNV(
     ResourceTracker* resourceTracker,
     VkWin32KeyedMutexAcquireReleaseInfoNV* toTransform);
 
 #endif
 #ifdef VK_EXT_validation_flags
-void transform_VkValidationFlagsEXT(
+void transform_tohost_VkValidationFlagsEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFlagsEXT* toTransform);
+
+void transform_fromhost_VkValidationFlagsEXT(
     ResourceTracker* resourceTracker,
     VkValidationFlagsEXT* toTransform);
 
 #endif
 #ifdef VK_NN_vi_surface
-void transform_VkViSurfaceCreateInfoNN(
+void transform_tohost_VkViSurfaceCreateInfoNN(
+    ResourceTracker* resourceTracker,
+    VkViSurfaceCreateInfoNN* toTransform);
+
+void transform_fromhost_VkViSurfaceCreateInfoNN(
     ResourceTracker* resourceTracker,
     VkViSurfaceCreateInfoNN* toTransform);
 
@@ -1241,83 +2290,159 @@
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
 #ifdef VK_EXT_conditional_rendering
-void transform_VkConditionalRenderingBeginInfoEXT(
+void transform_tohost_VkConditionalRenderingBeginInfoEXT(
     ResourceTracker* resourceTracker,
     VkConditionalRenderingBeginInfoEXT* toTransform);
 
-void transform_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
+void transform_fromhost_VkConditionalRenderingBeginInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkConditionalRenderingBeginInfoEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceConditionalRenderingFeaturesEXT* toTransform);
 
-void transform_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
+void transform_fromhost_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceConditionalRenderingFeaturesEXT* toTransform);
+
+void transform_tohost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceConditionalRenderingInfoEXT* toTransform);
+
+void transform_fromhost_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
     ResourceTracker* resourceTracker,
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* toTransform);
 
 #endif
 #ifdef VK_NVX_device_generated_commands
-void transform_VkDeviceGeneratedCommandsFeaturesNVX(
+void transform_tohost_VkDeviceGeneratedCommandsFeaturesNVX(
     ResourceTracker* resourceTracker,
     VkDeviceGeneratedCommandsFeaturesNVX* toTransform);
 
-void transform_VkDeviceGeneratedCommandsLimitsNVX(
+void transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(
+    ResourceTracker* resourceTracker,
+    VkDeviceGeneratedCommandsFeaturesNVX* toTransform);
+
+void transform_tohost_VkDeviceGeneratedCommandsLimitsNVX(
     ResourceTracker* resourceTracker,
     VkDeviceGeneratedCommandsLimitsNVX* toTransform);
 
-void transform_VkIndirectCommandsTokenNVX(
+void transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(
+    ResourceTracker* resourceTracker,
+    VkDeviceGeneratedCommandsLimitsNVX* toTransform);
+
+void transform_tohost_VkIndirectCommandsTokenNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsTokenNVX* toTransform);
 
-void transform_VkIndirectCommandsLayoutTokenNVX(
+void transform_fromhost_VkIndirectCommandsTokenNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsTokenNVX* toTransform);
+
+void transform_tohost_VkIndirectCommandsLayoutTokenNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsLayoutTokenNVX* toTransform);
 
-void transform_VkIndirectCommandsLayoutCreateInfoNVX(
+void transform_fromhost_VkIndirectCommandsLayoutTokenNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNVX* toTransform);
+
+void transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(
     ResourceTracker* resourceTracker,
     VkIndirectCommandsLayoutCreateInfoNVX* toTransform);
 
-void transform_VkCmdProcessCommandsInfoNVX(
+void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNVX* toTransform);
+
+void transform_tohost_VkCmdProcessCommandsInfoNVX(
     ResourceTracker* resourceTracker,
     VkCmdProcessCommandsInfoNVX* toTransform);
 
-void transform_VkCmdReserveSpaceForCommandsInfoNVX(
+void transform_fromhost_VkCmdProcessCommandsInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCmdProcessCommandsInfoNVX* toTransform);
+
+void transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(
     ResourceTracker* resourceTracker,
     VkCmdReserveSpaceForCommandsInfoNVX* toTransform);
 
-void transform_VkObjectTableCreateInfoNVX(
+void transform_fromhost_VkCmdReserveSpaceForCommandsInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCmdReserveSpaceForCommandsInfoNVX* toTransform);
+
+void transform_tohost_VkObjectTableCreateInfoNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableCreateInfoNVX* toTransform);
 
-void transform_VkObjectTableEntryNVX(
+void transform_fromhost_VkObjectTableCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableCreateInfoNVX* toTransform);
+
+void transform_tohost_VkObjectTableEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableEntryNVX* toTransform);
 
-void transform_VkObjectTablePipelineEntryNVX(
+void transform_fromhost_VkObjectTableEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableEntryNVX* toTransform);
+
+void transform_tohost_VkObjectTablePipelineEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTablePipelineEntryNVX* toTransform);
 
-void transform_VkObjectTableDescriptorSetEntryNVX(
+void transform_fromhost_VkObjectTablePipelineEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTablePipelineEntryNVX* toTransform);
+
+void transform_tohost_VkObjectTableDescriptorSetEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableDescriptorSetEntryNVX* toTransform);
 
-void transform_VkObjectTableVertexBufferEntryNVX(
+void transform_fromhost_VkObjectTableDescriptorSetEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableDescriptorSetEntryNVX* toTransform);
+
+void transform_tohost_VkObjectTableVertexBufferEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableVertexBufferEntryNVX* toTransform);
 
-void transform_VkObjectTableIndexBufferEntryNVX(
+void transform_fromhost_VkObjectTableVertexBufferEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableVertexBufferEntryNVX* toTransform);
+
+void transform_tohost_VkObjectTableIndexBufferEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTableIndexBufferEntryNVX* toTransform);
 
-void transform_VkObjectTablePushConstantEntryNVX(
+void transform_fromhost_VkObjectTableIndexBufferEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTableIndexBufferEntryNVX* toTransform);
+
+void transform_tohost_VkObjectTablePushConstantEntryNVX(
+    ResourceTracker* resourceTracker,
+    VkObjectTablePushConstantEntryNVX* toTransform);
+
+void transform_fromhost_VkObjectTablePushConstantEntryNVX(
     ResourceTracker* resourceTracker,
     VkObjectTablePushConstantEntryNVX* toTransform);
 
 #endif
 #ifdef VK_NV_clip_space_w_scaling
-void transform_VkViewportWScalingNV(
+void transform_tohost_VkViewportWScalingNV(
     ResourceTracker* resourceTracker,
     VkViewportWScalingNV* toTransform);
 
-void transform_VkPipelineViewportWScalingStateCreateInfoNV(
+void transform_fromhost_VkViewportWScalingNV(
+    ResourceTracker* resourceTracker,
+    VkViewportWScalingNV* toTransform);
+
+void transform_tohost_VkPipelineViewportWScalingStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportWScalingStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineViewportWScalingStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineViewportWScalingStateCreateInfoNV* toTransform);
 
@@ -1327,43 +2452,79 @@
 #ifdef VK_EXT_acquire_xlib_display
 #endif
 #ifdef VK_EXT_display_surface_counter
-void transform_VkSurfaceCapabilities2EXT(
+void transform_tohost_VkSurfaceCapabilities2EXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilities2EXT* toTransform);
+
+void transform_fromhost_VkSurfaceCapabilities2EXT(
     ResourceTracker* resourceTracker,
     VkSurfaceCapabilities2EXT* toTransform);
 
 #endif
 #ifdef VK_EXT_display_control
-void transform_VkDisplayPowerInfoEXT(
+void transform_tohost_VkDisplayPowerInfoEXT(
     ResourceTracker* resourceTracker,
     VkDisplayPowerInfoEXT* toTransform);
 
-void transform_VkDeviceEventInfoEXT(
+void transform_fromhost_VkDisplayPowerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDisplayPowerInfoEXT* toTransform);
+
+void transform_tohost_VkDeviceEventInfoEXT(
     ResourceTracker* resourceTracker,
     VkDeviceEventInfoEXT* toTransform);
 
-void transform_VkDisplayEventInfoEXT(
+void transform_fromhost_VkDeviceEventInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceEventInfoEXT* toTransform);
+
+void transform_tohost_VkDisplayEventInfoEXT(
     ResourceTracker* resourceTracker,
     VkDisplayEventInfoEXT* toTransform);
 
-void transform_VkSwapchainCounterCreateInfoEXT(
+void transform_fromhost_VkDisplayEventInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDisplayEventInfoEXT* toTransform);
+
+void transform_tohost_VkSwapchainCounterCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSwapchainCounterCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkSwapchainCounterCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkSwapchainCounterCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_GOOGLE_display_timing
-void transform_VkRefreshCycleDurationGOOGLE(
+void transform_tohost_VkRefreshCycleDurationGOOGLE(
     ResourceTracker* resourceTracker,
     VkRefreshCycleDurationGOOGLE* toTransform);
 
-void transform_VkPastPresentationTimingGOOGLE(
+void transform_fromhost_VkRefreshCycleDurationGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkRefreshCycleDurationGOOGLE* toTransform);
+
+void transform_tohost_VkPastPresentationTimingGOOGLE(
     ResourceTracker* resourceTracker,
     VkPastPresentationTimingGOOGLE* toTransform);
 
-void transform_VkPresentTimeGOOGLE(
+void transform_fromhost_VkPastPresentationTimingGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPastPresentationTimingGOOGLE* toTransform);
+
+void transform_tohost_VkPresentTimeGOOGLE(
     ResourceTracker* resourceTracker,
     VkPresentTimeGOOGLE* toTransform);
 
-void transform_VkPresentTimesInfoGOOGLE(
+void transform_fromhost_VkPresentTimeGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPresentTimeGOOGLE* toTransform);
+
+void transform_tohost_VkPresentTimesInfoGOOGLE(
+    ResourceTracker* resourceTracker,
+    VkPresentTimesInfoGOOGLE* toTransform);
+
+void transform_fromhost_VkPresentTimesInfoGOOGLE(
     ResourceTracker* resourceTracker,
     VkPresentTimesInfoGOOGLE* toTransform);
 
@@ -1375,37 +2536,65 @@
 #ifdef VK_NV_viewport_array2
 #endif
 #ifdef VK_NVX_multiview_per_view_attributes
-void transform_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
+void transform_tohost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* toTransform);
 
 #endif
 #ifdef VK_NV_viewport_swizzle
-void transform_VkViewportSwizzleNV(
+void transform_tohost_VkViewportSwizzleNV(
     ResourceTracker* resourceTracker,
     VkViewportSwizzleNV* toTransform);
 
-void transform_VkPipelineViewportSwizzleStateCreateInfoNV(
+void transform_fromhost_VkViewportSwizzleNV(
+    ResourceTracker* resourceTracker,
+    VkViewportSwizzleNV* toTransform);
+
+void transform_tohost_VkPipelineViewportSwizzleStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportSwizzleStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineViewportSwizzleStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineViewportSwizzleStateCreateInfoNV* toTransform);
 
 #endif
 #ifdef VK_EXT_discard_rectangles
-void transform_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
+void transform_tohost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDiscardRectanglePropertiesEXT* toTransform);
 
-void transform_VkPipelineDiscardRectangleStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiscardRectanglePropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineDiscardRectangleStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineDiscardRectangleStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineDiscardRectangleStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineDiscardRectangleStateCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_EXT_conservative_rasterization
-void transform_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
+void transform_tohost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* toTransform);
 
-void transform_VkPipelineRasterizationConservativeStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceConservativeRasterizationPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineRasterizationConservativeStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationConservativeStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationConservativeStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineRasterizationConservativeStateCreateInfoEXT* toTransform);
 
@@ -1413,23 +2602,39 @@
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
-void transform_VkXYColorEXT(
+void transform_tohost_VkXYColorEXT(
     ResourceTracker* resourceTracker,
     VkXYColorEXT* toTransform);
 
-void transform_VkHdrMetadataEXT(
+void transform_fromhost_VkXYColorEXT(
+    ResourceTracker* resourceTracker,
+    VkXYColorEXT* toTransform);
+
+void transform_tohost_VkHdrMetadataEXT(
+    ResourceTracker* resourceTracker,
+    VkHdrMetadataEXT* toTransform);
+
+void transform_fromhost_VkHdrMetadataEXT(
     ResourceTracker* resourceTracker,
     VkHdrMetadataEXT* toTransform);
 
 #endif
 #ifdef VK_MVK_ios_surface
-void transform_VkIOSSurfaceCreateInfoMVK(
+void transform_tohost_VkIOSSurfaceCreateInfoMVK(
+    ResourceTracker* resourceTracker,
+    VkIOSSurfaceCreateInfoMVK* toTransform);
+
+void transform_fromhost_VkIOSSurfaceCreateInfoMVK(
     ResourceTracker* resourceTracker,
     VkIOSSurfaceCreateInfoMVK* toTransform);
 
 #endif
 #ifdef VK_MVK_macos_surface
-void transform_VkMacOSSurfaceCreateInfoMVK(
+void transform_tohost_VkMacOSSurfaceCreateInfoMVK(
+    ResourceTracker* resourceTracker,
+    VkMacOSSurfaceCreateInfoMVK* toTransform);
+
+void transform_fromhost_VkMacOSSurfaceCreateInfoMVK(
     ResourceTracker* resourceTracker,
     VkMacOSSurfaceCreateInfoMVK* toTransform);
 
@@ -1439,59 +2644,111 @@
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void transform_VkDebugUtilsObjectNameInfoEXT(
+void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsObjectNameInfoEXT* toTransform);
 
-void transform_VkDebugUtilsObjectTagInfoEXT(
+void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform);
+
+void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsObjectTagInfoEXT* toTransform);
 
-void transform_VkDebugUtilsLabelEXT(
+void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform);
+
+void transform_tohost_VkDebugUtilsLabelEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsLabelEXT* toTransform);
 
-void transform_VkDebugUtilsMessengerCallbackDataEXT(
+void transform_fromhost_VkDebugUtilsLabelEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsLabelEXT* toTransform);
+
+void transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCallbackDataEXT* toTransform);
 
-void transform_VkDebugUtilsMessengerCreateInfoEXT(
+void transform_fromhost_VkDebugUtilsMessengerCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsMessengerCallbackDataEXT* toTransform);
+
+void transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsMessengerCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDebugUtilsMessengerCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
-void transform_VkAndroidHardwareBufferUsageANDROID(
+void transform_tohost_VkAndroidHardwareBufferUsageANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferUsageANDROID* toTransform);
 
-void transform_VkAndroidHardwareBufferPropertiesANDROID(
+void transform_fromhost_VkAndroidHardwareBufferUsageANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferUsageANDROID* toTransform);
+
+void transform_tohost_VkAndroidHardwareBufferPropertiesANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferPropertiesANDROID* toTransform);
 
-void transform_VkAndroidHardwareBufferFormatPropertiesANDROID(
+void transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferPropertiesANDROID* toTransform);
+
+void transform_tohost_VkAndroidHardwareBufferFormatPropertiesANDROID(
     ResourceTracker* resourceTracker,
     VkAndroidHardwareBufferFormatPropertiesANDROID* toTransform);
 
-void transform_VkImportAndroidHardwareBufferInfoANDROID(
+void transform_fromhost_VkAndroidHardwareBufferFormatPropertiesANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatPropertiesANDROID* toTransform);
+
+void transform_tohost_VkImportAndroidHardwareBufferInfoANDROID(
     ResourceTracker* resourceTracker,
     VkImportAndroidHardwareBufferInfoANDROID* toTransform);
 
-void transform_VkMemoryGetAndroidHardwareBufferInfoANDROID(
+void transform_fromhost_VkImportAndroidHardwareBufferInfoANDROID(
+    ResourceTracker* resourceTracker,
+    VkImportAndroidHardwareBufferInfoANDROID* toTransform);
+
+void transform_tohost_VkMemoryGetAndroidHardwareBufferInfoANDROID(
     ResourceTracker* resourceTracker,
     VkMemoryGetAndroidHardwareBufferInfoANDROID* toTransform);
 
-void transform_VkExternalFormatANDROID(
+void transform_fromhost_VkMemoryGetAndroidHardwareBufferInfoANDROID(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetAndroidHardwareBufferInfoANDROID* toTransform);
+
+void transform_tohost_VkExternalFormatANDROID(
+    ResourceTracker* resourceTracker,
+    VkExternalFormatANDROID* toTransform);
+
+void transform_fromhost_VkExternalFormatANDROID(
     ResourceTracker* resourceTracker,
     VkExternalFormatANDROID* toTransform);
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void transform_VkSamplerReductionModeCreateInfoEXT(
+void transform_tohost_VkSamplerReductionModeCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkSamplerReductionModeCreateInfoEXT* toTransform);
 
-void transform_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
+void transform_fromhost_VkSamplerReductionModeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfoEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform);
 
@@ -1505,61 +2762,113 @@
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
-void transform_VkSampleLocationEXT(
+void transform_tohost_VkSampleLocationEXT(
     ResourceTracker* resourceTracker,
     VkSampleLocationEXT* toTransform);
 
-void transform_VkSampleLocationsInfoEXT(
+void transform_fromhost_VkSampleLocationEXT(
+    ResourceTracker* resourceTracker,
+    VkSampleLocationEXT* toTransform);
+
+void transform_tohost_VkSampleLocationsInfoEXT(
     ResourceTracker* resourceTracker,
     VkSampleLocationsInfoEXT* toTransform);
 
-void transform_VkAttachmentSampleLocationsEXT(
+void transform_fromhost_VkSampleLocationsInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSampleLocationsInfoEXT* toTransform);
+
+void transform_tohost_VkAttachmentSampleLocationsEXT(
     ResourceTracker* resourceTracker,
     VkAttachmentSampleLocationsEXT* toTransform);
 
-void transform_VkSubpassSampleLocationsEXT(
+void transform_fromhost_VkAttachmentSampleLocationsEXT(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleLocationsEXT* toTransform);
+
+void transform_tohost_VkSubpassSampleLocationsEXT(
     ResourceTracker* resourceTracker,
     VkSubpassSampleLocationsEXT* toTransform);
 
-void transform_VkRenderPassSampleLocationsBeginInfoEXT(
+void transform_fromhost_VkSubpassSampleLocationsEXT(
+    ResourceTracker* resourceTracker,
+    VkSubpassSampleLocationsEXT* toTransform);
+
+void transform_tohost_VkRenderPassSampleLocationsBeginInfoEXT(
     ResourceTracker* resourceTracker,
     VkRenderPassSampleLocationsBeginInfoEXT* toTransform);
 
-void transform_VkPipelineSampleLocationsStateCreateInfoEXT(
+void transform_fromhost_VkRenderPassSampleLocationsBeginInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderPassSampleLocationsBeginInfoEXT* toTransform);
+
+void transform_tohost_VkPipelineSampleLocationsStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineSampleLocationsStateCreateInfoEXT* toTransform);
 
-void transform_VkPhysicalDeviceSampleLocationsPropertiesEXT(
+void transform_fromhost_VkPipelineSampleLocationsStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineSampleLocationsStateCreateInfoEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSampleLocationsPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSampleLocationsPropertiesEXT* toTransform);
 
-void transform_VkMultisamplePropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceSampleLocationsPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSampleLocationsPropertiesEXT* toTransform);
+
+void transform_tohost_VkMultisamplePropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkMultisamplePropertiesEXT* toTransform);
+
+void transform_fromhost_VkMultisamplePropertiesEXT(
     ResourceTracker* resourceTracker,
     VkMultisamplePropertiesEXT* toTransform);
 
 #endif
 #ifdef VK_EXT_blend_operation_advanced
-void transform_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
+void transform_tohost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* toTransform);
 
-void transform_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* toTransform);
 
-void transform_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorBlendAdvancedStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineColorBlendAdvancedStateCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_NV_fragment_coverage_to_color
-void transform_VkPipelineCoverageToColorStateCreateInfoNV(
+void transform_tohost_VkPipelineCoverageToColorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageToColorStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineCoverageToColorStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineCoverageToColorStateCreateInfoNV* toTransform);
 
 #endif
 #ifdef VK_NV_framebuffer_mixed_samples
-void transform_VkPipelineCoverageModulationStateCreateInfoNV(
+void transform_tohost_VkPipelineCoverageModulationStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageModulationStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineCoverageModulationStateCreateInfoNV(
     ResourceTracker* resourceTracker,
     VkPipelineCoverageModulationStateCreateInfoNV* toTransform);
 
@@ -1569,33 +2878,61 @@
 #ifdef VK_EXT_post_depth_coverage
 #endif
 #ifdef VK_EXT_validation_cache
-void transform_VkValidationCacheCreateInfoEXT(
+void transform_tohost_VkValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkValidationCacheCreateInfoEXT* toTransform);
 
-void transform_VkShaderModuleValidationCacheCreateInfoEXT(
+void transform_fromhost_VkValidationCacheCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationCacheCreateInfoEXT* toTransform);
+
+void transform_tohost_VkShaderModuleValidationCacheCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkShaderModuleValidationCacheCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkShaderModuleValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkShaderModuleValidationCacheCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void transform_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform);
 
-void transform_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform);
 
-void transform_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform);
 
-void transform_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform);
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform);
 
-void transform_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform);
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform);
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
     ResourceTracker* resourceTracker,
     VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform);
 
@@ -1603,21 +2940,37 @@
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
 #ifdef VK_EXT_global_priority
-void transform_VkDeviceQueueGlobalPriorityCreateInfoEXT(
+void transform_tohost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceQueueGlobalPriorityCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkDeviceQueueGlobalPriorityCreateInfoEXT* toTransform);
 
 #endif
 #ifdef VK_EXT_external_memory_host
-void transform_VkImportMemoryHostPointerInfoEXT(
+void transform_tohost_VkImportMemoryHostPointerInfoEXT(
     ResourceTracker* resourceTracker,
     VkImportMemoryHostPointerInfoEXT* toTransform);
 
-void transform_VkMemoryHostPointerPropertiesEXT(
+void transform_fromhost_VkImportMemoryHostPointerInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryHostPointerInfoEXT* toTransform);
+
+void transform_tohost_VkMemoryHostPointerPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkMemoryHostPointerPropertiesEXT* toTransform);
 
-void transform_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
+void transform_fromhost_VkMemoryHostPointerPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryHostPointerPropertiesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryHostPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* toTransform);
 
@@ -1625,21 +2978,37 @@
 #ifdef VK_AMD_buffer_marker
 #endif
 #ifdef VK_AMD_shader_core_properties
-void transform_VkPhysicalDeviceShaderCorePropertiesAMD(
+void transform_tohost_VkPhysicalDeviceShaderCorePropertiesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCorePropertiesAMD* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderCorePropertiesAMD(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceShaderCorePropertiesAMD* toTransform);
 
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
-void transform_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
+void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toTransform);
 
-void transform_VkVertexInputBindingDivisorDescriptionEXT(
+void transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toTransform);
+
+void transform_tohost_VkVertexInputBindingDivisorDescriptionEXT(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDivisorDescriptionEXT* toTransform);
 
-void transform_VkPipelineVertexInputDivisorStateCreateInfoEXT(
+void transform_fromhost_VkVertexInputBindingDivisorDescriptionEXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDivisorDescriptionEXT* toTransform);
+
+void transform_tohost_VkPipelineVertexInputDivisorStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineVertexInputDivisorStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineVertexInputDivisorStateCreateInfoEXT(
     ResourceTracker* resourceTracker,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* toTransform);
 
@@ -1647,11 +3016,19 @@
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
-void transform_VkQueueFamilyCheckpointPropertiesNV(
+void transform_tohost_VkQueueFamilyCheckpointPropertiesNV(
     ResourceTracker* resourceTracker,
     VkQueueFamilyCheckpointPropertiesNV* toTransform);
 
-void transform_VkCheckpointDataNV(
+void transform_fromhost_VkQueueFamilyCheckpointPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointPropertiesNV* toTransform);
+
+void transform_tohost_VkCheckpointDataNV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointDataNV* toTransform);
+
+void transform_fromhost_VkCheckpointDataNV(
     ResourceTracker* resourceTracker,
     VkCheckpointDataNV* toTransform);