[vulkan] VK_ANDROID_native_buffer skeleton (taking autogenerated code)

bug: 111137294
bug: 119426975
Change-Id: I1f4066101ed008e3d7722a0a88094f934a572a7a
diff --git a/system/vulkan/func_table.cpp b/system/vulkan/func_table.cpp
index 0a27b11..ea87560 100644
--- a/system/vulkan/func_table.cpp
+++ b/system/vulkan/func_table.cpp
@@ -28,6 +28,8 @@
 #include "VkEncoder.h"
 #include "HostConnection.h"
 
+#include "goldfish_vk_private_defs.h"
+
 // Stuff we are not going to use but if included,
 // will cause compile errors. These are Android Vulkan
 // required extensions, but the approach will be to
@@ -2548,6 +2550,43 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
+    VkDevice device,
+    VkFormat format,
+    VkImageUsageFlags imageUsage,
+    int* grallocUsage)
+{
+    auto vkEnc = HostConnection::get()->vkEncoder();
+    VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
+    vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
+    return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
+}
+static VkResult entry_vkAcquireImageANDROID(
+    VkDevice device,
+    VkImage image,
+    int nativeFenceFd,
+    VkSemaphore semaphore,
+    VkFence fence)
+{
+    auto vkEnc = HostConnection::get()->vkEncoder();
+    VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
+    vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
+    return vkAcquireImageANDROID_VkResult_return;
+}
+static VkResult entry_vkQueueSignalReleaseImageANDROID(
+    VkQueue queue,
+    uint32_t waitSemaphoreCount,
+    const VkSemaphore* pWaitSemaphores,
+    VkImage image,
+    int* pNativeFenceFd)
+{
+    auto vkEnc = HostConnection::get()->vkEncoder();
+    VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
+    vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
+    return vkQueueSignalReleaseImageANDROID_VkResult_return;
+}
+#endif
 #ifdef VK_EXT_debug_report
 static VkResult entry_vkCreateDebugReportCallbackEXT(
     VkInstance instance,
@@ -4358,6 +4397,20 @@
         return (void*)entry_vkCmdDrawIndexedIndirectCountKHR;
     }
 #endif
+#ifdef VK_ANDROID_native_buffer
+    if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
+    {
+        return (void*)entry_vkGetSwapchainGrallocUsageANDROID;
+    }
+    if (!strcmp(name, "vkAcquireImageANDROID"))
+    {
+        return (void*)entry_vkAcquireImageANDROID;
+    }
+    if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
+    {
+        return (void*)entry_vkQueueSignalReleaseImageANDROID;
+    }
+#endif
 #ifdef VK_EXT_debug_report
     if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
     {
diff --git a/system/vulkan/func_table.h b/system/vulkan/func_table.h
index 3db8b8d..358eec4 100644
--- a/system/vulkan/func_table.h
+++ b/system/vulkan/func_table.h
@@ -134,6 +134,8 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+#endif
 #ifdef VK_EXT_debug_report
 #endif
 #ifdef VK_NV_glsl_shader
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index f603445..08cca43 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -34,6 +34,7 @@
 
 LOCAL_CFLAGS += \
     -DLOG_TAG=\"goldfish_vulkan\" \
+    -DVK_ANDROID_native_buffer \
     -Wno-missing-field-initializers \
     -Werror \
     -fstrict-aliasing \
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index 84f222d..4968346 100644
--- a/system/vulkan_enc/CMakeLists.txt
+++ b/system/vulkan_enc/CMakeLists.txt
@@ -1,10 +1,10 @@
 # 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" "39551e2c032c863c53f04162cf4228b7971ea5e0ef25a843bc586cc955290528")
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "d0e9c6d3e8c63f239a83080551521c3d23a2328b20eaafbd1be88b22839adc57")
 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)
 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_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES")
+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_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES")
 target_compile_options(vulkan_enc PRIVATE "-fvisibility=default" "-Wno-missing-field-initializers" "-Werror" "-fstrict-aliasing")
 target_link_libraries(vulkan_enc PRIVATE cutils utils log OpenglCodecCommon_host android-emu-shared)
\ No newline at end of file
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index a247658..f234ac1 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -37,6 +37,7 @@
 #include "goldfish_vk_marshaling_guest.h"
 #include "goldfish_vk_deepcopy_guest.h"
 #include "goldfish_vk_handlemap_guest.h"
+#include "goldfish_vk_private_defs.h"
 
 
 
@@ -15148,6 +15149,181 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID(
+    VkDevice device,
+    VkFormat format,
+    VkImageUsageFlags imageUsage,
+    int* grallocUsage)
+{
+    auto stream = mImpl->stream();
+    auto countingStream = mImpl->countingStream();
+    auto resources = mImpl->resources();
+    auto pool = mImpl->pool();
+    stream->setHandleMapping(resources->unwrapMapping());
+    VkDevice local_device;
+    local_device = device;
+    VkFormat local_format;
+    local_format = format;
+    VkImageUsageFlags local_imageUsage;
+    local_imageUsage = imageUsage;
+    countingStream->rewind();
+    {
+        uint64_t cgen_var_1168;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1168, 1);
+        countingStream->write((uint64_t*)&cgen_var_1168, 1 * 8);
+        countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
+        countingStream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags));
+        countingStream->write((int*)grallocUsage, sizeof(int));
+    }
+    uint32_t packetSize_vkGetSwapchainGrallocUsageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+    countingStream->rewind();
+    uint32_t opcode_vkGetSwapchainGrallocUsageANDROID = OP_vkGetSwapchainGrallocUsageANDROID;
+    stream->write(&opcode_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t));
+    stream->write(&packetSize_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t));
+    uint64_t cgen_var_1169;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1169, 1);
+    stream->write((uint64_t*)&cgen_var_1169, 1 * 8);
+    stream->write((VkFormat*)&local_format, sizeof(VkFormat));
+    stream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags));
+    stream->write((int*)grallocUsage, sizeof(int));
+    stream->read((int*)grallocUsage, sizeof(int));
+    VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
+    stream->read(&vkGetSwapchainGrallocUsageANDROID_VkResult_return, sizeof(VkResult));
+    countingStream->clearPool();
+    stream->clearPool();
+    pool->freeAll();
+    return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
+}
+
+VkResult VkEncoder::vkAcquireImageANDROID(
+    VkDevice device,
+    VkImage image,
+    int nativeFenceFd,
+    VkSemaphore semaphore,
+    VkFence fence)
+{
+    auto stream = mImpl->stream();
+    auto countingStream = mImpl->countingStream();
+    auto resources = mImpl->resources();
+    auto pool = mImpl->pool();
+    stream->setHandleMapping(resources->unwrapMapping());
+    VkDevice local_device;
+    local_device = device;
+    VkImage local_image;
+    local_image = image;
+    int local_nativeFenceFd;
+    local_nativeFenceFd = nativeFenceFd;
+    VkSemaphore local_semaphore;
+    local_semaphore = semaphore;
+    VkFence local_fence;
+    local_fence = fence;
+    countingStream->rewind();
+    {
+        uint64_t cgen_var_1170;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1170, 1);
+        countingStream->write((uint64_t*)&cgen_var_1170, 1 * 8);
+        uint64_t cgen_var_1171;
+        countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1171, 1);
+        countingStream->write((uint64_t*)&cgen_var_1171, 1 * 8);
+        countingStream->write((int*)&local_nativeFenceFd, sizeof(int));
+        uint64_t cgen_var_1172;
+        countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1172, 1);
+        countingStream->write((uint64_t*)&cgen_var_1172, 1 * 8);
+        uint64_t cgen_var_1173;
+        countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1173, 1);
+        countingStream->write((uint64_t*)&cgen_var_1173, 1 * 8);
+    }
+    uint32_t packetSize_vkAcquireImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+    countingStream->rewind();
+    uint32_t opcode_vkAcquireImageANDROID = OP_vkAcquireImageANDROID;
+    stream->write(&opcode_vkAcquireImageANDROID, sizeof(uint32_t));
+    stream->write(&packetSize_vkAcquireImageANDROID, sizeof(uint32_t));
+    uint64_t cgen_var_1174;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1174, 1);
+    stream->write((uint64_t*)&cgen_var_1174, 1 * 8);
+    uint64_t cgen_var_1175;
+    stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1175, 1);
+    stream->write((uint64_t*)&cgen_var_1175, 1 * 8);
+    stream->write((int*)&local_nativeFenceFd, sizeof(int));
+    uint64_t cgen_var_1176;
+    stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1176, 1);
+    stream->write((uint64_t*)&cgen_var_1176, 1 * 8);
+    uint64_t cgen_var_1177;
+    stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1177, 1);
+    stream->write((uint64_t*)&cgen_var_1177, 1 * 8);
+    VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult));
+    countingStream->clearPool();
+    stream->clearPool();
+    pool->freeAll();
+    return vkAcquireImageANDROID_VkResult_return;
+}
+
+VkResult VkEncoder::vkQueueSignalReleaseImageANDROID(
+    VkQueue queue,
+    uint32_t waitSemaphoreCount,
+    const VkSemaphore* pWaitSemaphores,
+    VkImage image,
+    int* pNativeFenceFd)
+{
+    auto stream = mImpl->stream();
+    auto countingStream = mImpl->countingStream();
+    auto resources = mImpl->resources();
+    auto pool = mImpl->pool();
+    stream->setHandleMapping(resources->unwrapMapping());
+    VkQueue local_queue;
+    local_queue = queue;
+    uint32_t local_waitSemaphoreCount;
+    local_waitSemaphoreCount = waitSemaphoreCount;
+    VkSemaphore* local_pWaitSemaphores;
+    local_pWaitSemaphores = nullptr;
+    if (pWaitSemaphores)
+    {
+        local_pWaitSemaphores = (VkSemaphore*)pool->dupArray(pWaitSemaphores, sizeof(const VkSemaphore));
+    }
+    VkImage local_image;
+    local_image = image;
+    countingStream->rewind();
+    {
+        uint64_t cgen_var_1178;
+        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1178, 1);
+        countingStream->write((uint64_t*)&cgen_var_1178, 1 * 8);
+        countingStream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t));
+        uint64_t cgen_var_1179;
+        countingStream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, &cgen_var_1179, 1);
+        countingStream->write((uint64_t*)&cgen_var_1179, 8);
+        uint64_t cgen_var_1180;
+        countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1180, 1);
+        countingStream->write((uint64_t*)&cgen_var_1180, 1 * 8);
+        countingStream->write((int*)pNativeFenceFd, sizeof(int));
+    }
+    uint32_t packetSize_vkQueueSignalReleaseImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+    countingStream->rewind();
+    uint32_t opcode_vkQueueSignalReleaseImageANDROID = OP_vkQueueSignalReleaseImageANDROID;
+    stream->write(&opcode_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t));
+    stream->write(&packetSize_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t));
+    uint64_t cgen_var_1181;
+    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1181, 1);
+    stream->write((uint64_t*)&cgen_var_1181, 1 * 8);
+    stream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t));
+    uint64_t cgen_var_1182;
+    stream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, &cgen_var_1182, 1);
+    stream->write((uint64_t*)&cgen_var_1182, 8);
+    uint64_t cgen_var_1183;
+    stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1183, 1);
+    stream->write((uint64_t*)&cgen_var_1183, 1 * 8);
+    stream->write((int*)pNativeFenceFd, sizeof(int));
+    stream->read((int*)pNativeFenceFd, sizeof(int));
+    VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
+    stream->read(&vkQueueSignalReleaseImageANDROID_VkResult_return, sizeof(VkResult));
+    countingStream->clearPool();
+    stream->clearPool();
+    pool->freeAll();
+    return vkQueueSignalReleaseImageANDROID_VkResult_return;
+}
+
+#endif
 #ifdef VK_EXT_debug_report
 VkResult VkEncoder::vkCreateDebugReportCallbackEXT(
     VkInstance instance,
@@ -15179,46 +15355,46 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1168;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1168, 1);
-        countingStream->write((uint64_t*)&cgen_var_1168, 1 * 8);
+        uint64_t cgen_var_1184;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1184, 1);
+        countingStream->write((uint64_t*)&cgen_var_1184, 1 * 8);
         marshal_VkDebugReportCallbackCreateInfoEXT(countingStream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1169 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1169);
+        uint64_t cgen_var_1185 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1185);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1170;
-        countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1170, 1);
-        countingStream->write((uint64_t*)&cgen_var_1170, 8);
+        uint64_t cgen_var_1186;
+        countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1186, 1);
+        countingStream->write((uint64_t*)&cgen_var_1186, 8);
     }
     uint32_t packetSize_vkCreateDebugReportCallbackEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateDebugReportCallbackEXT = OP_vkCreateDebugReportCallbackEXT;
     stream->write(&opcode_vkCreateDebugReportCallbackEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateDebugReportCallbackEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1171;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1171, 1);
-    stream->write((uint64_t*)&cgen_var_1171, 1 * 8);
+    uint64_t cgen_var_1187;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1187, 1);
+    stream->write((uint64_t*)&cgen_var_1187, 1 * 8);
     marshal_VkDebugReportCallbackCreateInfoEXT(stream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1172 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1172);
+    uint64_t cgen_var_1188 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1188);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1173;
-    stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1173, 1);
-    stream->write((uint64_t*)&cgen_var_1173, 8);
+    uint64_t cgen_var_1189;
+    stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1189, 1);
+    stream->write((uint64_t*)&cgen_var_1189, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1174;
-    stream->read((uint64_t*)&cgen_var_1174, 8);
-    stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1174, (VkDebugReportCallbackEXT*)pCallback, 1);
+    uint64_t cgen_var_1190;
+    stream->read((uint64_t*)&cgen_var_1190, 8);
+    stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1190, (VkDebugReportCallbackEXT*)pCallback, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult));
@@ -15252,15 +15428,15 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1175;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1175, 1);
-        countingStream->write((uint64_t*)&cgen_var_1175, 1 * 8);
-        uint64_t cgen_var_1176;
-        countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1176, 1);
-        countingStream->write((uint64_t*)&cgen_var_1176, 1 * 8);
+        uint64_t cgen_var_1191;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1191, 1);
+        countingStream->write((uint64_t*)&cgen_var_1191, 1 * 8);
+        uint64_t cgen_var_1192;
+        countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1192, 1);
+        countingStream->write((uint64_t*)&cgen_var_1192, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1177 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1177);
+        uint64_t cgen_var_1193 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1193);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -15271,15 +15447,15 @@
     uint32_t opcode_vkDestroyDebugReportCallbackEXT = OP_vkDestroyDebugReportCallbackEXT;
     stream->write(&opcode_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1178;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1178, 1);
-    stream->write((uint64_t*)&cgen_var_1178, 1 * 8);
-    uint64_t cgen_var_1179;
-    stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1179, 1);
-    stream->write((uint64_t*)&cgen_var_1179, 1 * 8);
+    uint64_t cgen_var_1194;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1194, 1);
+    stream->write((uint64_t*)&cgen_var_1194, 1 * 8);
+    uint64_t cgen_var_1195;
+    stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1195, 1);
+    stream->write((uint64_t*)&cgen_var_1195, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1180 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1180);
+    uint64_t cgen_var_1196 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1196);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -15328,14 +15504,14 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1181;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1181, 1);
-        countingStream->write((uint64_t*)&cgen_var_1181, 1 * 8);
+        uint64_t cgen_var_1197;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1197, 1);
+        countingStream->write((uint64_t*)&cgen_var_1197, 1 * 8);
         countingStream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT));
         countingStream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT));
         countingStream->write((uint64_t*)&local_object, sizeof(uint64_t));
-        uint64_t cgen_var_1182 = (uint64_t)local_location;
-        countingStream->putBe64(cgen_var_1182);
+        uint64_t cgen_var_1198 = (uint64_t)local_location;
+        countingStream->putBe64(cgen_var_1198);
         countingStream->write((int32_t*)&local_messageCode, sizeof(int32_t));
         countingStream->putString(local_pLayerPrefix);
         countingStream->putString(local_pMessage);
@@ -15345,14 +15521,14 @@
     uint32_t opcode_vkDebugReportMessageEXT = OP_vkDebugReportMessageEXT;
     stream->write(&opcode_vkDebugReportMessageEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDebugReportMessageEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1183;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1183, 1);
-    stream->write((uint64_t*)&cgen_var_1183, 1 * 8);
+    uint64_t cgen_var_1199;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1199, 1);
+    stream->write((uint64_t*)&cgen_var_1199, 1 * 8);
     stream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT));
     stream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT));
     stream->write((uint64_t*)&local_object, sizeof(uint64_t));
-    uint64_t cgen_var_1184 = (uint64_t)local_location;
-    stream->putBe64(cgen_var_1184);
+    uint64_t cgen_var_1200 = (uint64_t)local_location;
+    stream->putBe64(cgen_var_1200);
     stream->write((int32_t*)&local_messageCode, sizeof(int32_t));
     stream->putString(local_pLayerPrefix);
     stream->putString(local_pMessage);
@@ -15392,9 +15568,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1185;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1185, 1);
-        countingStream->write((uint64_t*)&cgen_var_1185, 1 * 8);
+        uint64_t cgen_var_1201;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1201, 1);
+        countingStream->write((uint64_t*)&cgen_var_1201, 1 * 8);
         marshal_VkDebugMarkerObjectTagInfoEXT(countingStream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
     }
     uint32_t packetSize_vkDebugMarkerSetObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -15402,9 +15578,9 @@
     uint32_t opcode_vkDebugMarkerSetObjectTagEXT = OP_vkDebugMarkerSetObjectTagEXT;
     stream->write(&opcode_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1186;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1186, 1);
-    stream->write((uint64_t*)&cgen_var_1186, 1 * 8);
+    uint64_t cgen_var_1202;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1202, 1);
+    stream->write((uint64_t*)&cgen_var_1202, 1 * 8);
     marshal_VkDebugMarkerObjectTagInfoEXT(stream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
     VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDebugMarkerSetObjectTagEXT_VkResult_return, sizeof(VkResult));
@@ -15434,9 +15610,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1187;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1187, 1);
-        countingStream->write((uint64_t*)&cgen_var_1187, 1 * 8);
+        uint64_t cgen_var_1203;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1203, 1);
+        countingStream->write((uint64_t*)&cgen_var_1203, 1 * 8);
         marshal_VkDebugMarkerObjectNameInfoEXT(countingStream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
     }
     uint32_t packetSize_vkDebugMarkerSetObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -15444,9 +15620,9 @@
     uint32_t opcode_vkDebugMarkerSetObjectNameEXT = OP_vkDebugMarkerSetObjectNameEXT;
     stream->write(&opcode_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1188;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1188, 1);
-    stream->write((uint64_t*)&cgen_var_1188, 1 * 8);
+    uint64_t cgen_var_1204;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1204, 1);
+    stream->write((uint64_t*)&cgen_var_1204, 1 * 8);
     marshal_VkDebugMarkerObjectNameInfoEXT(stream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
     VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDebugMarkerSetObjectNameEXT_VkResult_return, sizeof(VkResult));
@@ -15476,9 +15652,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1189;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1189, 1);
-        countingStream->write((uint64_t*)&cgen_var_1189, 1 * 8);
+        uint64_t cgen_var_1205;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1205, 1);
+        countingStream->write((uint64_t*)&cgen_var_1205, 1 * 8);
         marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
     }
     uint32_t packetSize_vkCmdDebugMarkerBeginEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -15486,9 +15662,9 @@
     uint32_t opcode_vkCmdDebugMarkerBeginEXT = OP_vkCmdDebugMarkerBeginEXT;
     stream->write(&opcode_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1190;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1190, 1);
-    stream->write((uint64_t*)&cgen_var_1190, 1 * 8);
+    uint64_t cgen_var_1206;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1206, 1);
+    stream->write((uint64_t*)&cgen_var_1206, 1 * 8);
     marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
 }
 
@@ -15504,18 +15680,18 @@
     local_commandBuffer = commandBuffer;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1191;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1191, 1);
-        countingStream->write((uint64_t*)&cgen_var_1191, 1 * 8);
+        uint64_t cgen_var_1207;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1207, 1);
+        countingStream->write((uint64_t*)&cgen_var_1207, 1 * 8);
     }
     uint32_t packetSize_vkCmdDebugMarkerEndEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCmdDebugMarkerEndEXT = OP_vkCmdDebugMarkerEndEXT;
     stream->write(&opcode_vkCmdDebugMarkerEndEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdDebugMarkerEndEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1192;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1192, 1);
-    stream->write((uint64_t*)&cgen_var_1192, 1 * 8);
+    uint64_t cgen_var_1208;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1208, 1);
+    stream->write((uint64_t*)&cgen_var_1208, 1 * 8);
 }
 
 void VkEncoder::vkCmdDebugMarkerInsertEXT(
@@ -15538,9 +15714,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1193;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1193, 1);
-        countingStream->write((uint64_t*)&cgen_var_1193, 1 * 8);
+        uint64_t cgen_var_1209;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1209, 1);
+        countingStream->write((uint64_t*)&cgen_var_1209, 1 * 8);
         marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
     }
     uint32_t packetSize_vkCmdDebugMarkerInsertEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -15548,9 +15724,9 @@
     uint32_t opcode_vkCmdDebugMarkerInsertEXT = OP_vkCmdDebugMarkerInsertEXT;
     stream->write(&opcode_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1194;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1194, 1);
-    stream->write((uint64_t*)&cgen_var_1194, 1 * 8);
+    uint64_t cgen_var_1210;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1210, 1);
+    stream->write((uint64_t*)&cgen_var_1210, 1 * 8);
     marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
 }
 
@@ -15590,16 +15766,16 @@
     local_stride = stride;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1195;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1195, 1);
-        countingStream->write((uint64_t*)&cgen_var_1195, 1 * 8);
-        uint64_t cgen_var_1196;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1196, 1);
-        countingStream->write((uint64_t*)&cgen_var_1196, 1 * 8);
+        uint64_t cgen_var_1211;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1211, 1);
+        countingStream->write((uint64_t*)&cgen_var_1211, 1 * 8);
+        uint64_t cgen_var_1212;
+        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1212, 1);
+        countingStream->write((uint64_t*)&cgen_var_1212, 1 * 8);
         countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
-        uint64_t cgen_var_1197;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1197, 1);
-        countingStream->write((uint64_t*)&cgen_var_1197, 1 * 8);
+        uint64_t cgen_var_1213;
+        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1213, 1);
+        countingStream->write((uint64_t*)&cgen_var_1213, 1 * 8);
         countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
         countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
         countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
@@ -15609,16 +15785,16 @@
     uint32_t opcode_vkCmdDrawIndirectCountAMD = OP_vkCmdDrawIndirectCountAMD;
     stream->write(&opcode_vkCmdDrawIndirectCountAMD, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdDrawIndirectCountAMD, sizeof(uint32_t));
-    uint64_t cgen_var_1198;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1198, 1);
-    stream->write((uint64_t*)&cgen_var_1198, 1 * 8);
-    uint64_t cgen_var_1199;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1199, 1);
-    stream->write((uint64_t*)&cgen_var_1199, 1 * 8);
+    uint64_t cgen_var_1214;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1214, 1);
+    stream->write((uint64_t*)&cgen_var_1214, 1 * 8);
+    uint64_t cgen_var_1215;
+    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1215, 1);
+    stream->write((uint64_t*)&cgen_var_1215, 1 * 8);
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
-    uint64_t cgen_var_1200;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1200, 1);
-    stream->write((uint64_t*)&cgen_var_1200, 1 * 8);
+    uint64_t cgen_var_1216;
+    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1216, 1);
+    stream->write((uint64_t*)&cgen_var_1216, 1 * 8);
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
@@ -15654,16 +15830,16 @@
     local_stride = stride;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1201;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1201, 1);
-        countingStream->write((uint64_t*)&cgen_var_1201, 1 * 8);
-        uint64_t cgen_var_1202;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1202, 1);
-        countingStream->write((uint64_t*)&cgen_var_1202, 1 * 8);
+        uint64_t cgen_var_1217;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1217, 1);
+        countingStream->write((uint64_t*)&cgen_var_1217, 1 * 8);
+        uint64_t cgen_var_1218;
+        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1218, 1);
+        countingStream->write((uint64_t*)&cgen_var_1218, 1 * 8);
         countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
-        uint64_t cgen_var_1203;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1203, 1);
-        countingStream->write((uint64_t*)&cgen_var_1203, 1 * 8);
+        uint64_t cgen_var_1219;
+        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1219, 1);
+        countingStream->write((uint64_t*)&cgen_var_1219, 1 * 8);
         countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
         countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
         countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
@@ -15673,16 +15849,16 @@
     uint32_t opcode_vkCmdDrawIndexedIndirectCountAMD = OP_vkCmdDrawIndexedIndirectCountAMD;
     stream->write(&opcode_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t));
-    uint64_t cgen_var_1204;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1204, 1);
-    stream->write((uint64_t*)&cgen_var_1204, 1 * 8);
-    uint64_t cgen_var_1205;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1205, 1);
-    stream->write((uint64_t*)&cgen_var_1205, 1 * 8);
+    uint64_t cgen_var_1220;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1220, 1);
+    stream->write((uint64_t*)&cgen_var_1220, 1 * 8);
+    uint64_t cgen_var_1221;
+    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1221, 1);
+    stream->write((uint64_t*)&cgen_var_1221, 1 * 8);
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
-    uint64_t cgen_var_1206;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1206, 1);
-    stream->write((uint64_t*)&cgen_var_1206, 1 * 8);
+    uint64_t cgen_var_1222;
+    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1222, 1);
+    stream->write((uint64_t*)&cgen_var_1222, 1 * 8);
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
@@ -15721,25 +15897,25 @@
     local_infoType = infoType;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1207;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1207, 1);
-        countingStream->write((uint64_t*)&cgen_var_1207, 1 * 8);
-        uint64_t cgen_var_1208;
-        countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1208, 1);
-        countingStream->write((uint64_t*)&cgen_var_1208, 1 * 8);
+        uint64_t cgen_var_1223;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1223, 1);
+        countingStream->write((uint64_t*)&cgen_var_1223, 1 * 8);
+        uint64_t cgen_var_1224;
+        countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1224, 1);
+        countingStream->write((uint64_t*)&cgen_var_1224, 1 * 8);
         countingStream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits));
         countingStream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1209 = (uint64_t)(uintptr_t)pInfoSize;
-        countingStream->putBe64(cgen_var_1209);
+        uint64_t cgen_var_1225 = (uint64_t)(uintptr_t)pInfoSize;
+        countingStream->putBe64(cgen_var_1225);
         if (pInfoSize)
         {
-            uint64_t cgen_var_1210 = (uint64_t)(*pInfoSize);
-            countingStream->putBe64(cgen_var_1210);
+            uint64_t cgen_var_1226 = (uint64_t)(*pInfoSize);
+            countingStream->putBe64(cgen_var_1226);
         }
         // WARNING PTR CHECK
-        uint64_t cgen_var_1211 = (uint64_t)(uintptr_t)pInfo;
-        countingStream->putBe64(cgen_var_1211);
+        uint64_t cgen_var_1227 = (uint64_t)(uintptr_t)pInfo;
+        countingStream->putBe64(cgen_var_1227);
         if (pInfo)
         {
             countingStream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
@@ -15750,25 +15926,25 @@
     uint32_t opcode_vkGetShaderInfoAMD = OP_vkGetShaderInfoAMD;
     stream->write(&opcode_vkGetShaderInfoAMD, sizeof(uint32_t));
     stream->write(&packetSize_vkGetShaderInfoAMD, sizeof(uint32_t));
-    uint64_t cgen_var_1212;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1212, 1);
-    stream->write((uint64_t*)&cgen_var_1212, 1 * 8);
-    uint64_t cgen_var_1213;
-    stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1213, 1);
-    stream->write((uint64_t*)&cgen_var_1213, 1 * 8);
+    uint64_t cgen_var_1228;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1228, 1);
+    stream->write((uint64_t*)&cgen_var_1228, 1 * 8);
+    uint64_t cgen_var_1229;
+    stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1229, 1);
+    stream->write((uint64_t*)&cgen_var_1229, 1 * 8);
     stream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits));
     stream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1214 = (uint64_t)(uintptr_t)pInfoSize;
-    stream->putBe64(cgen_var_1214);
+    uint64_t cgen_var_1230 = (uint64_t)(uintptr_t)pInfoSize;
+    stream->putBe64(cgen_var_1230);
     if (pInfoSize)
     {
-        uint64_t cgen_var_1215 = (uint64_t)(*pInfoSize);
-        stream->putBe64(cgen_var_1215);
+        uint64_t cgen_var_1231 = (uint64_t)(*pInfoSize);
+        stream->putBe64(cgen_var_1231);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1216 = (uint64_t)(uintptr_t)pInfo;
-    stream->putBe64(cgen_var_1216);
+    uint64_t cgen_var_1232 = (uint64_t)(uintptr_t)pInfo;
+    stream->putBe64(cgen_var_1232);
     if (pInfo)
     {
         stream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
@@ -15840,9 +16016,9 @@
     local_externalHandleType = externalHandleType;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1220;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1220, 1);
-        countingStream->write((uint64_t*)&cgen_var_1220, 1 * 8);
+        uint64_t cgen_var_1236;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1236, 1);
+        countingStream->write((uint64_t*)&cgen_var_1236, 1 * 8);
         countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
         countingStream->write((VkImageType*)&local_type, sizeof(VkImageType));
         countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
@@ -15856,9 +16032,9 @@
     uint32_t opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
     stream->write(&opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t));
     stream->write(&packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t));
-    uint64_t cgen_var_1221;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1221, 1);
-    stream->write((uint64_t*)&cgen_var_1221, 1 * 8);
+    uint64_t cgen_var_1237;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1237, 1);
+    stream->write((uint64_t*)&cgen_var_1237, 1 * 8);
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     stream->write((VkImageType*)&local_type, sizeof(VkImageType));
     stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
@@ -15898,12 +16074,12 @@
     local_handleType = handleType;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1222;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1222, 1);
-        countingStream->write((uint64_t*)&cgen_var_1222, 1 * 8);
-        uint64_t cgen_var_1223;
-        countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1223, 1);
-        countingStream->write((uint64_t*)&cgen_var_1223, 1 * 8);
+        uint64_t cgen_var_1238;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1238, 1);
+        countingStream->write((uint64_t*)&cgen_var_1238, 1 * 8);
+        uint64_t cgen_var_1239;
+        countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1239, 1);
+        countingStream->write((uint64_t*)&cgen_var_1239, 1 * 8);
         countingStream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
         countingStream->write((HANDLE*)pHandle, sizeof(HANDLE));
     }
@@ -15912,12 +16088,12 @@
     uint32_t opcode_vkGetMemoryWin32HandleNV = OP_vkGetMemoryWin32HandleNV;
     stream->write(&opcode_vkGetMemoryWin32HandleNV, sizeof(uint32_t));
     stream->write(&packetSize_vkGetMemoryWin32HandleNV, sizeof(uint32_t));
-    uint64_t cgen_var_1224;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1224, 1);
-    stream->write((uint64_t*)&cgen_var_1224, 1 * 8);
-    uint64_t cgen_var_1225;
-    stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1225, 1);
-    stream->write((uint64_t*)&cgen_var_1225, 1 * 8);
+    uint64_t cgen_var_1240;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1240, 1);
+    stream->write((uint64_t*)&cgen_var_1240, 1 * 8);
+    uint64_t cgen_var_1241;
+    stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1241, 1);
+    stream->write((uint64_t*)&cgen_var_1241, 1 * 8);
     stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
     stream->write((HANDLE*)pHandle, sizeof(HANDLE));
     stream->read((HANDLE*)pHandle, sizeof(HANDLE));
@@ -15965,45 +16141,45 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1226;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1226, 1);
-        countingStream->write((uint64_t*)&cgen_var_1226, 1 * 8);
+        uint64_t cgen_var_1242;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1242, 1);
+        countingStream->write((uint64_t*)&cgen_var_1242, 1 * 8);
         marshal_VkViSurfaceCreateInfoNN(countingStream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1227 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1227);
+        uint64_t cgen_var_1243 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1243);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1228;
-        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1228, 1);
-        countingStream->write((uint64_t*)&cgen_var_1228, 8);
+        uint64_t cgen_var_1244;
+        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1244, 1);
+        countingStream->write((uint64_t*)&cgen_var_1244, 8);
     }
     uint32_t packetSize_vkCreateViSurfaceNN = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateViSurfaceNN = OP_vkCreateViSurfaceNN;
     stream->write(&opcode_vkCreateViSurfaceNN, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateViSurfaceNN, sizeof(uint32_t));
-    uint64_t cgen_var_1229;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1229, 1);
-    stream->write((uint64_t*)&cgen_var_1229, 1 * 8);
+    uint64_t cgen_var_1245;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1245, 1);
+    stream->write((uint64_t*)&cgen_var_1245, 1 * 8);
     marshal_VkViSurfaceCreateInfoNN(stream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1230 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1230);
+    uint64_t cgen_var_1246 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1246);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1231;
-    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1231, 1);
-    stream->write((uint64_t*)&cgen_var_1231, 8);
+    uint64_t cgen_var_1247;
+    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1247, 1);
+    stream->write((uint64_t*)&cgen_var_1247, 8);
     stream->setHandleMapping(resources->unwrapMapping());
-    uint64_t cgen_var_1232;
-    stream->read((uint64_t*)&cgen_var_1232, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1232, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_1248;
+    stream->read((uint64_t*)&cgen_var_1248, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1248, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
     stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16038,9 +16214,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1233;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1233, 1);
-        countingStream->write((uint64_t*)&cgen_var_1233, 1 * 8);
+        uint64_t cgen_var_1249;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1249, 1);
+        countingStream->write((uint64_t*)&cgen_var_1249, 1 * 8);
         marshal_VkConditionalRenderingBeginInfoEXT(countingStream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
     }
     uint32_t packetSize_vkCmdBeginConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -16048,9 +16224,9 @@
     uint32_t opcode_vkCmdBeginConditionalRenderingEXT = OP_vkCmdBeginConditionalRenderingEXT;
     stream->write(&opcode_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1234;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1234, 1);
-    stream->write((uint64_t*)&cgen_var_1234, 1 * 8);
+    uint64_t cgen_var_1250;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1250, 1);
+    stream->write((uint64_t*)&cgen_var_1250, 1 * 8);
     marshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
 }
 
@@ -16066,18 +16242,18 @@
     local_commandBuffer = commandBuffer;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1235;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1235, 1);
-        countingStream->write((uint64_t*)&cgen_var_1235, 1 * 8);
+        uint64_t cgen_var_1251;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1251, 1);
+        countingStream->write((uint64_t*)&cgen_var_1251, 1 * 8);
     }
     uint32_t packetSize_vkCmdEndConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCmdEndConditionalRenderingEXT = OP_vkCmdEndConditionalRenderingEXT;
     stream->write(&opcode_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1236;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1236, 1);
-    stream->write((uint64_t*)&cgen_var_1236, 1 * 8);
+    uint64_t cgen_var_1252;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1252, 1);
+    stream->write((uint64_t*)&cgen_var_1252, 1 * 8);
 }
 
 #endif
@@ -16102,9 +16278,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1237;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1237, 1);
-        countingStream->write((uint64_t*)&cgen_var_1237, 1 * 8);
+        uint64_t cgen_var_1253;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1253, 1);
+        countingStream->write((uint64_t*)&cgen_var_1253, 1 * 8);
         marshal_VkCmdProcessCommandsInfoNVX(countingStream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
     }
     uint32_t packetSize_vkCmdProcessCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -16112,9 +16288,9 @@
     uint32_t opcode_vkCmdProcessCommandsNVX = OP_vkCmdProcessCommandsNVX;
     stream->write(&opcode_vkCmdProcessCommandsNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdProcessCommandsNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1238;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1238, 1);
-    stream->write((uint64_t*)&cgen_var_1238, 1 * 8);
+    uint64_t cgen_var_1254;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1254, 1);
+    stream->write((uint64_t*)&cgen_var_1254, 1 * 8);
     marshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
 }
 
@@ -16138,9 +16314,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1239;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1239, 1);
-        countingStream->write((uint64_t*)&cgen_var_1239, 1 * 8);
+        uint64_t cgen_var_1255;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1255, 1);
+        countingStream->write((uint64_t*)&cgen_var_1255, 1 * 8);
         marshal_VkCmdReserveSpaceForCommandsInfoNVX(countingStream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
     }
     uint32_t packetSize_vkCmdReserveSpaceForCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -16148,9 +16324,9 @@
     uint32_t opcode_vkCmdReserveSpaceForCommandsNVX = OP_vkCmdReserveSpaceForCommandsNVX;
     stream->write(&opcode_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1240;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1240, 1);
-    stream->write((uint64_t*)&cgen_var_1240, 1 * 8);
+    uint64_t cgen_var_1256;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1256, 1);
+    stream->write((uint64_t*)&cgen_var_1256, 1 * 8);
     marshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
 }
 
@@ -16184,46 +16360,46 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1241;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1241, 1);
-        countingStream->write((uint64_t*)&cgen_var_1241, 1 * 8);
+        uint64_t cgen_var_1257;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1257, 1);
+        countingStream->write((uint64_t*)&cgen_var_1257, 1 * 8);
         marshal_VkIndirectCommandsLayoutCreateInfoNVX(countingStream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1242 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1242);
+        uint64_t cgen_var_1258 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1258);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1243;
-        countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1243, 1);
-        countingStream->write((uint64_t*)&cgen_var_1243, 8);
+        uint64_t cgen_var_1259;
+        countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1259, 1);
+        countingStream->write((uint64_t*)&cgen_var_1259, 8);
     }
     uint32_t packetSize_vkCreateIndirectCommandsLayoutNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateIndirectCommandsLayoutNVX = OP_vkCreateIndirectCommandsLayoutNVX;
     stream->write(&opcode_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1244;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1244, 1);
-    stream->write((uint64_t*)&cgen_var_1244, 1 * 8);
+    uint64_t cgen_var_1260;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1260, 1);
+    stream->write((uint64_t*)&cgen_var_1260, 1 * 8);
     marshal_VkIndirectCommandsLayoutCreateInfoNVX(stream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1245 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1245);
+    uint64_t cgen_var_1261 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1261);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1246;
-    stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1246, 1);
-    stream->write((uint64_t*)&cgen_var_1246, 8);
+    uint64_t cgen_var_1262;
+    stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1262, 1);
+    stream->write((uint64_t*)&cgen_var_1262, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1247;
-    stream->read((uint64_t*)&cgen_var_1247, 8);
-    stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1247, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1);
+    uint64_t cgen_var_1263;
+    stream->read((uint64_t*)&cgen_var_1263, 8);
+    stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1263, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
     stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult));
@@ -16257,15 +16433,15 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1248;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1248, 1);
-        countingStream->write((uint64_t*)&cgen_var_1248, 1 * 8);
-        uint64_t cgen_var_1249;
-        countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1249, 1);
-        countingStream->write((uint64_t*)&cgen_var_1249, 1 * 8);
+        uint64_t cgen_var_1264;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1264, 1);
+        countingStream->write((uint64_t*)&cgen_var_1264, 1 * 8);
+        uint64_t cgen_var_1265;
+        countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1265, 1);
+        countingStream->write((uint64_t*)&cgen_var_1265, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1250 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1250);
+        uint64_t cgen_var_1266 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1266);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -16276,15 +16452,15 @@
     uint32_t opcode_vkDestroyIndirectCommandsLayoutNVX = OP_vkDestroyIndirectCommandsLayoutNVX;
     stream->write(&opcode_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1251;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1251, 1);
-    stream->write((uint64_t*)&cgen_var_1251, 1 * 8);
-    uint64_t cgen_var_1252;
-    stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1252, 1);
-    stream->write((uint64_t*)&cgen_var_1252, 1 * 8);
+    uint64_t cgen_var_1267;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1267, 1);
+    stream->write((uint64_t*)&cgen_var_1267, 1 * 8);
+    uint64_t cgen_var_1268;
+    stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1268, 1);
+    stream->write((uint64_t*)&cgen_var_1268, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1253 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1253);
+    uint64_t cgen_var_1269 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1269);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -16322,46 +16498,46 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1254;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1254, 1);
-        countingStream->write((uint64_t*)&cgen_var_1254, 1 * 8);
+        uint64_t cgen_var_1270;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1270, 1);
+        countingStream->write((uint64_t*)&cgen_var_1270, 1 * 8);
         marshal_VkObjectTableCreateInfoNVX(countingStream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1255 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1255);
+        uint64_t cgen_var_1271 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1271);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1256;
-        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1256, 1);
-        countingStream->write((uint64_t*)&cgen_var_1256, 8);
+        uint64_t cgen_var_1272;
+        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1272, 1);
+        countingStream->write((uint64_t*)&cgen_var_1272, 8);
     }
     uint32_t packetSize_vkCreateObjectTableNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateObjectTableNVX = OP_vkCreateObjectTableNVX;
     stream->write(&opcode_vkCreateObjectTableNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateObjectTableNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1257;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1257, 1);
-    stream->write((uint64_t*)&cgen_var_1257, 1 * 8);
+    uint64_t cgen_var_1273;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1273, 1);
+    stream->write((uint64_t*)&cgen_var_1273, 1 * 8);
     marshal_VkObjectTableCreateInfoNVX(stream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1258 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1258);
+    uint64_t cgen_var_1274 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1274);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1259;
-    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1259, 1);
-    stream->write((uint64_t*)&cgen_var_1259, 8);
+    uint64_t cgen_var_1275;
+    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1275, 1);
+    stream->write((uint64_t*)&cgen_var_1275, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1260;
-    stream->read((uint64_t*)&cgen_var_1260, 8);
-    stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1260, (VkObjectTableNVX*)pObjectTable, 1);
+    uint64_t cgen_var_1276;
+    stream->read((uint64_t*)&cgen_var_1276, 8);
+    stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1276, (VkObjectTableNVX*)pObjectTable, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
     stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult));
@@ -16395,15 +16571,15 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1261;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1261, 1);
-        countingStream->write((uint64_t*)&cgen_var_1261, 1 * 8);
-        uint64_t cgen_var_1262;
-        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1262, 1);
-        countingStream->write((uint64_t*)&cgen_var_1262, 1 * 8);
+        uint64_t cgen_var_1277;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1277, 1);
+        countingStream->write((uint64_t*)&cgen_var_1277, 1 * 8);
+        uint64_t cgen_var_1278;
+        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1278, 1);
+        countingStream->write((uint64_t*)&cgen_var_1278, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1263 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1263);
+        uint64_t cgen_var_1279 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1279);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -16414,15 +16590,15 @@
     uint32_t opcode_vkDestroyObjectTableNVX = OP_vkDestroyObjectTableNVX;
     stream->write(&opcode_vkDestroyObjectTableNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkDestroyObjectTableNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1264;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1264, 1);
-    stream->write((uint64_t*)&cgen_var_1264, 1 * 8);
-    uint64_t cgen_var_1265;
-    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1265, 1);
-    stream->write((uint64_t*)&cgen_var_1265, 1 * 8);
+    uint64_t cgen_var_1280;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1280, 1);
+    stream->write((uint64_t*)&cgen_var_1280, 1 * 8);
+    uint64_t cgen_var_1281;
+    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1281, 1);
+    stream->write((uint64_t*)&cgen_var_1281, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1266 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1266);
+    uint64_t cgen_var_1282 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1282);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -16458,12 +16634,12 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1267;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1267, 1);
-        countingStream->write((uint64_t*)&cgen_var_1267, 1 * 8);
-        uint64_t cgen_var_1268;
-        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1268, 1);
-        countingStream->write((uint64_t*)&cgen_var_1268, 1 * 8);
+        uint64_t cgen_var_1283;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1283, 1);
+        countingStream->write((uint64_t*)&cgen_var_1283, 1 * 8);
+        uint64_t cgen_var_1284;
+        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1284, 1);
+        countingStream->write((uint64_t*)&cgen_var_1284, 1 * 8);
         countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
         (void)local_ppObjectTableEntries;
         countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
@@ -16473,12 +16649,12 @@
     uint32_t opcode_vkRegisterObjectsNVX = OP_vkRegisterObjectsNVX;
     stream->write(&opcode_vkRegisterObjectsNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkRegisterObjectsNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1269;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1269, 1);
-    stream->write((uint64_t*)&cgen_var_1269, 1 * 8);
-    uint64_t cgen_var_1270;
-    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1270, 1);
-    stream->write((uint64_t*)&cgen_var_1270, 1 * 8);
+    uint64_t cgen_var_1285;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1285, 1);
+    stream->write((uint64_t*)&cgen_var_1285, 1 * 8);
+    uint64_t cgen_var_1286;
+    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1286, 1);
+    stream->write((uint64_t*)&cgen_var_1286, 1 * 8);
     stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
     (void)local_ppObjectTableEntries;
     stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
@@ -16522,12 +16698,12 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1271;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1271, 1);
-        countingStream->write((uint64_t*)&cgen_var_1271, 1 * 8);
-        uint64_t cgen_var_1272;
-        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1272, 1);
-        countingStream->write((uint64_t*)&cgen_var_1272, 1 * 8);
+        uint64_t cgen_var_1287;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1287, 1);
+        countingStream->write((uint64_t*)&cgen_var_1287, 1 * 8);
+        uint64_t cgen_var_1288;
+        countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1288, 1);
+        countingStream->write((uint64_t*)&cgen_var_1288, 1 * 8);
         countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
         countingStream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
         countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
@@ -16537,12 +16713,12 @@
     uint32_t opcode_vkUnregisterObjectsNVX = OP_vkUnregisterObjectsNVX;
     stream->write(&opcode_vkUnregisterObjectsNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkUnregisterObjectsNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1273;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1273, 1);
-    stream->write((uint64_t*)&cgen_var_1273, 1 * 8);
-    uint64_t cgen_var_1274;
-    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1274, 1);
-    stream->write((uint64_t*)&cgen_var_1274, 1 * 8);
+    uint64_t cgen_var_1289;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1289, 1);
+    stream->write((uint64_t*)&cgen_var_1289, 1 * 8);
+    uint64_t cgen_var_1290;
+    stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1290, 1);
+    stream->write((uint64_t*)&cgen_var_1290, 1 * 8);
     stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
     stream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
     stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
@@ -16568,9 +16744,9 @@
     local_physicalDevice = physicalDevice;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1275;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1275, 1);
-        countingStream->write((uint64_t*)&cgen_var_1275, 1 * 8);
+        uint64_t cgen_var_1291;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1291, 1);
+        countingStream->write((uint64_t*)&cgen_var_1291, 1 * 8);
         marshal_VkDeviceGeneratedCommandsFeaturesNVX(countingStream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
         marshal_VkDeviceGeneratedCommandsLimitsNVX(countingStream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
     }
@@ -16579,9 +16755,9 @@
     uint32_t opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
     stream->write(&opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t));
     stream->write(&packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t));
-    uint64_t cgen_var_1276;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1276, 1);
-    stream->write((uint64_t*)&cgen_var_1276, 1 * 8);
+    uint64_t cgen_var_1292;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1292, 1);
+    stream->write((uint64_t*)&cgen_var_1292, 1 * 8);
     marshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
     marshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
     unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
@@ -16619,9 +16795,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1277;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1277, 1);
-        countingStream->write((uint64_t*)&cgen_var_1277, 1 * 8);
+        uint64_t cgen_var_1293;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1293, 1);
+        countingStream->write((uint64_t*)&cgen_var_1293, 1 * 8);
         countingStream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
         countingStream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
         for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
@@ -16634,9 +16810,9 @@
     uint32_t opcode_vkCmdSetViewportWScalingNV = OP_vkCmdSetViewportWScalingNV;
     stream->write(&opcode_vkCmdSetViewportWScalingNV, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdSetViewportWScalingNV, sizeof(uint32_t));
-    uint64_t cgen_var_1278;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1278, 1);
-    stream->write((uint64_t*)&cgen_var_1278, 1 * 8);
+    uint64_t cgen_var_1294;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1294, 1);
+    stream->write((uint64_t*)&cgen_var_1294, 1 * 8);
     stream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
     stream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
     for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
@@ -16662,24 +16838,24 @@
     local_display = display;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1279;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1279, 1);
-        countingStream->write((uint64_t*)&cgen_var_1279, 1 * 8);
-        uint64_t cgen_var_1280;
-        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1280, 1);
-        countingStream->write((uint64_t*)&cgen_var_1280, 1 * 8);
+        uint64_t cgen_var_1295;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1295, 1);
+        countingStream->write((uint64_t*)&cgen_var_1295, 1 * 8);
+        uint64_t cgen_var_1296;
+        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1296, 1);
+        countingStream->write((uint64_t*)&cgen_var_1296, 1 * 8);
     }
     uint32_t packetSize_vkReleaseDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkReleaseDisplayEXT = OP_vkReleaseDisplayEXT;
     stream->write(&opcode_vkReleaseDisplayEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkReleaseDisplayEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1281;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1281, 1);
-    stream->write((uint64_t*)&cgen_var_1281, 1 * 8);
-    uint64_t cgen_var_1282;
-    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1282, 1);
-    stream->write((uint64_t*)&cgen_var_1282, 1 * 8);
+    uint64_t cgen_var_1297;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1297, 1);
+    stream->write((uint64_t*)&cgen_var_1297, 1 * 8);
+    uint64_t cgen_var_1298;
+    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1298, 1);
+    stream->write((uint64_t*)&cgen_var_1298, 1 * 8);
     VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16706,26 +16882,26 @@
     local_display = display;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1283;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1283, 1);
-        countingStream->write((uint64_t*)&cgen_var_1283, 1 * 8);
+        uint64_t cgen_var_1299;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1299, 1);
+        countingStream->write((uint64_t*)&cgen_var_1299, 1 * 8);
         countingStream->write((Display*)dpy, sizeof(Display));
-        uint64_t cgen_var_1284;
-        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1284, 1);
-        countingStream->write((uint64_t*)&cgen_var_1284, 1 * 8);
+        uint64_t cgen_var_1300;
+        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1300, 1);
+        countingStream->write((uint64_t*)&cgen_var_1300, 1 * 8);
     }
     uint32_t packetSize_vkAcquireXlibDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkAcquireXlibDisplayEXT = OP_vkAcquireXlibDisplayEXT;
     stream->write(&opcode_vkAcquireXlibDisplayEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkAcquireXlibDisplayEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1285;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1285, 1);
-    stream->write((uint64_t*)&cgen_var_1285, 1 * 8);
+    uint64_t cgen_var_1301;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1301, 1);
+    stream->write((uint64_t*)&cgen_var_1301, 1 * 8);
     stream->write((Display*)dpy, sizeof(Display));
-    uint64_t cgen_var_1286;
-    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1286, 1);
-    stream->write((uint64_t*)&cgen_var_1286, 1 * 8);
+    uint64_t cgen_var_1302;
+    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1302, 1);
+    stream->write((uint64_t*)&cgen_var_1302, 1 * 8);
     stream->read((Display*)dpy, sizeof(Display));
     VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireXlibDisplayEXT_VkResult_return, sizeof(VkResult));
@@ -16752,34 +16928,34 @@
     local_rrOutput = rrOutput;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1287;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1287, 1);
-        countingStream->write((uint64_t*)&cgen_var_1287, 1 * 8);
+        uint64_t cgen_var_1303;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1303, 1);
+        countingStream->write((uint64_t*)&cgen_var_1303, 1 * 8);
         countingStream->write((Display*)dpy, sizeof(Display));
         countingStream->write((RROutput*)&local_rrOutput, sizeof(RROutput));
-        uint64_t cgen_var_1288;
-        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1288, 1);
-        countingStream->write((uint64_t*)&cgen_var_1288, 8);
+        uint64_t cgen_var_1304;
+        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1304, 1);
+        countingStream->write((uint64_t*)&cgen_var_1304, 8);
     }
     uint32_t packetSize_vkGetRandROutputDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkGetRandROutputDisplayEXT = OP_vkGetRandROutputDisplayEXT;
     stream->write(&opcode_vkGetRandROutputDisplayEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetRandROutputDisplayEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1289;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1289, 1);
-    stream->write((uint64_t*)&cgen_var_1289, 1 * 8);
+    uint64_t cgen_var_1305;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1305, 1);
+    stream->write((uint64_t*)&cgen_var_1305, 1 * 8);
     stream->write((Display*)dpy, sizeof(Display));
     stream->write((RROutput*)&local_rrOutput, sizeof(RROutput));
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1290;
-    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1290, 1);
-    stream->write((uint64_t*)&cgen_var_1290, 8);
+    uint64_t cgen_var_1306;
+    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1306, 1);
+    stream->write((uint64_t*)&cgen_var_1306, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->read((Display*)dpy, sizeof(Display));
-    uint64_t cgen_var_1291;
-    stream->read((uint64_t*)&cgen_var_1291, 8);
-    stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1291, (VkDisplayKHR*)pDisplay, 1);
+    uint64_t cgen_var_1307;
+    stream->read((uint64_t*)&cgen_var_1307, 8);
+    stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1307, (VkDisplayKHR*)pDisplay, 1);
     VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16806,12 +16982,12 @@
     local_surface = surface;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1292;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1292, 1);
-        countingStream->write((uint64_t*)&cgen_var_1292, 1 * 8);
-        uint64_t cgen_var_1293;
-        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1293, 1);
-        countingStream->write((uint64_t*)&cgen_var_1293, 1 * 8);
+        uint64_t cgen_var_1308;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1308, 1);
+        countingStream->write((uint64_t*)&cgen_var_1308, 1 * 8);
+        uint64_t cgen_var_1309;
+        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1309, 1);
+        countingStream->write((uint64_t*)&cgen_var_1309, 1 * 8);
         marshal_VkSurfaceCapabilities2EXT(countingStream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     }
     uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -16819,12 +16995,12 @@
     uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT = OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT;
     stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t));
-    uint64_t cgen_var_1294;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1294, 1);
-    stream->write((uint64_t*)&cgen_var_1294, 1 * 8);
-    uint64_t cgen_var_1295;
-    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1295, 1);
-    stream->write((uint64_t*)&cgen_var_1295, 1 * 8);
+    uint64_t cgen_var_1310;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1310, 1);
+    stream->write((uint64_t*)&cgen_var_1310, 1 * 8);
+    uint64_t cgen_var_1311;
+    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1311, 1);
+    stream->write((uint64_t*)&cgen_var_1311, 1 * 8);
     marshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
@@ -16860,12 +17036,12 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1296;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1296, 1);
-        countingStream->write((uint64_t*)&cgen_var_1296, 1 * 8);
-        uint64_t cgen_var_1297;
-        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1297, 1);
-        countingStream->write((uint64_t*)&cgen_var_1297, 1 * 8);
+        uint64_t cgen_var_1312;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1312, 1);
+        countingStream->write((uint64_t*)&cgen_var_1312, 1 * 8);
+        uint64_t cgen_var_1313;
+        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1313, 1);
+        countingStream->write((uint64_t*)&cgen_var_1313, 1 * 8);
         marshal_VkDisplayPowerInfoEXT(countingStream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
     }
     uint32_t packetSize_vkDisplayPowerControlEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -16873,12 +17049,12 @@
     uint32_t opcode_vkDisplayPowerControlEXT = OP_vkDisplayPowerControlEXT;
     stream->write(&opcode_vkDisplayPowerControlEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDisplayPowerControlEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1298;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1298, 1);
-    stream->write((uint64_t*)&cgen_var_1298, 1 * 8);
-    uint64_t cgen_var_1299;
-    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1299, 1);
-    stream->write((uint64_t*)&cgen_var_1299, 1 * 8);
+    uint64_t cgen_var_1314;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1314, 1);
+    stream->write((uint64_t*)&cgen_var_1314, 1 * 8);
+    uint64_t cgen_var_1315;
+    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1315, 1);
+    stream->write((uint64_t*)&cgen_var_1315, 1 * 8);
     marshal_VkDisplayPowerInfoEXT(stream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
     VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDisplayPowerControlEXT_VkResult_return, sizeof(VkResult));
@@ -16918,45 +17094,45 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1300;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1300, 1);
-        countingStream->write((uint64_t*)&cgen_var_1300, 1 * 8);
+        uint64_t cgen_var_1316;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1316, 1);
+        countingStream->write((uint64_t*)&cgen_var_1316, 1 * 8);
         marshal_VkDeviceEventInfoEXT(countingStream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1301 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1301);
+        uint64_t cgen_var_1317 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1317);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1302;
-        countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1302, 1);
-        countingStream->write((uint64_t*)&cgen_var_1302, 8);
+        uint64_t cgen_var_1318;
+        countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1318, 1);
+        countingStream->write((uint64_t*)&cgen_var_1318, 8);
     }
     uint32_t packetSize_vkRegisterDeviceEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkRegisterDeviceEventEXT = OP_vkRegisterDeviceEventEXT;
     stream->write(&opcode_vkRegisterDeviceEventEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkRegisterDeviceEventEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1303;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1303, 1);
-    stream->write((uint64_t*)&cgen_var_1303, 1 * 8);
+    uint64_t cgen_var_1319;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1319, 1);
+    stream->write((uint64_t*)&cgen_var_1319, 1 * 8);
     marshal_VkDeviceEventInfoEXT(stream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1304 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1304);
+    uint64_t cgen_var_1320 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1320);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1305;
-    stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1305, 1);
-    stream->write((uint64_t*)&cgen_var_1305, 8);
+    uint64_t cgen_var_1321;
+    stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1321, 1);
+    stream->write((uint64_t*)&cgen_var_1321, 8);
     stream->setHandleMapping(resources->unwrapMapping());
-    uint64_t cgen_var_1306;
-    stream->read((uint64_t*)&cgen_var_1306, 8);
-    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1306, (VkFence*)pFence, 1);
+    uint64_t cgen_var_1322;
+    stream->read((uint64_t*)&cgen_var_1322, 8);
+    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1322, (VkFence*)pFence, 1);
     VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16998,51 +17174,51 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1307;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1307, 1);
-        countingStream->write((uint64_t*)&cgen_var_1307, 1 * 8);
-        uint64_t cgen_var_1308;
-        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1308, 1);
-        countingStream->write((uint64_t*)&cgen_var_1308, 1 * 8);
+        uint64_t cgen_var_1323;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1323, 1);
+        countingStream->write((uint64_t*)&cgen_var_1323, 1 * 8);
+        uint64_t cgen_var_1324;
+        countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1324, 1);
+        countingStream->write((uint64_t*)&cgen_var_1324, 1 * 8);
         marshal_VkDisplayEventInfoEXT(countingStream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1309 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1309);
+        uint64_t cgen_var_1325 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1325);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1310;
-        countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1310, 1);
-        countingStream->write((uint64_t*)&cgen_var_1310, 8);
+        uint64_t cgen_var_1326;
+        countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1326, 1);
+        countingStream->write((uint64_t*)&cgen_var_1326, 8);
     }
     uint32_t packetSize_vkRegisterDisplayEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkRegisterDisplayEventEXT = OP_vkRegisterDisplayEventEXT;
     stream->write(&opcode_vkRegisterDisplayEventEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkRegisterDisplayEventEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1311;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1311, 1);
-    stream->write((uint64_t*)&cgen_var_1311, 1 * 8);
-    uint64_t cgen_var_1312;
-    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1312, 1);
-    stream->write((uint64_t*)&cgen_var_1312, 1 * 8);
+    uint64_t cgen_var_1327;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1327, 1);
+    stream->write((uint64_t*)&cgen_var_1327, 1 * 8);
+    uint64_t cgen_var_1328;
+    stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1328, 1);
+    stream->write((uint64_t*)&cgen_var_1328, 1 * 8);
     marshal_VkDisplayEventInfoEXT(stream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1313 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1313);
+    uint64_t cgen_var_1329 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1329);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1314;
-    stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1314, 1);
-    stream->write((uint64_t*)&cgen_var_1314, 8);
+    uint64_t cgen_var_1330;
+    stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1330, 1);
+    stream->write((uint64_t*)&cgen_var_1330, 8);
     stream->setHandleMapping(resources->unwrapMapping());
-    uint64_t cgen_var_1315;
-    stream->read((uint64_t*)&cgen_var_1315, 8);
-    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1315, (VkFence*)pFence, 1);
+    uint64_t cgen_var_1331;
+    stream->read((uint64_t*)&cgen_var_1331, 8);
+    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1331, (VkFence*)pFence, 1);
     VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17070,12 +17246,12 @@
     local_counter = counter;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1316;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1316, 1);
-        countingStream->write((uint64_t*)&cgen_var_1316, 1 * 8);
-        uint64_t cgen_var_1317;
-        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1317, 1);
-        countingStream->write((uint64_t*)&cgen_var_1317, 1 * 8);
+        uint64_t cgen_var_1332;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1332, 1);
+        countingStream->write((uint64_t*)&cgen_var_1332, 1 * 8);
+        uint64_t cgen_var_1333;
+        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1333, 1);
+        countingStream->write((uint64_t*)&cgen_var_1333, 1 * 8);
         countingStream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
         countingStream->write((uint64_t*)pCounterValue, sizeof(uint64_t));
     }
@@ -17084,12 +17260,12 @@
     uint32_t opcode_vkGetSwapchainCounterEXT = OP_vkGetSwapchainCounterEXT;
     stream->write(&opcode_vkGetSwapchainCounterEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetSwapchainCounterEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1318;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1318, 1);
-    stream->write((uint64_t*)&cgen_var_1318, 1 * 8);
-    uint64_t cgen_var_1319;
-    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1319, 1);
-    stream->write((uint64_t*)&cgen_var_1319, 1 * 8);
+    uint64_t cgen_var_1334;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1334, 1);
+    stream->write((uint64_t*)&cgen_var_1334, 1 * 8);
+    uint64_t cgen_var_1335;
+    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1335, 1);
+    stream->write((uint64_t*)&cgen_var_1335, 1 * 8);
     stream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
     stream->write((uint64_t*)pCounterValue, sizeof(uint64_t));
     stream->read((uint64_t*)pCounterValue, sizeof(uint64_t));
@@ -17119,12 +17295,12 @@
     local_swapchain = swapchain;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1320;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1320, 1);
-        countingStream->write((uint64_t*)&cgen_var_1320, 1 * 8);
-        uint64_t cgen_var_1321;
-        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1321, 1);
-        countingStream->write((uint64_t*)&cgen_var_1321, 1 * 8);
+        uint64_t cgen_var_1336;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1336, 1);
+        countingStream->write((uint64_t*)&cgen_var_1336, 1 * 8);
+        uint64_t cgen_var_1337;
+        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1337, 1);
+        countingStream->write((uint64_t*)&cgen_var_1337, 1 * 8);
         marshal_VkRefreshCycleDurationGOOGLE(countingStream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     }
     uint32_t packetSize_vkGetRefreshCycleDurationGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17132,12 +17308,12 @@
     uint32_t opcode_vkGetRefreshCycleDurationGOOGLE = OP_vkGetRefreshCycleDurationGOOGLE;
     stream->write(&opcode_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t));
     stream->write(&packetSize_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t));
-    uint64_t cgen_var_1322;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1322, 1);
-    stream->write((uint64_t*)&cgen_var_1322, 1 * 8);
-    uint64_t cgen_var_1323;
-    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1323, 1);
-    stream->write((uint64_t*)&cgen_var_1323, 1 * 8);
+    uint64_t cgen_var_1338;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1338, 1);
+    stream->write((uint64_t*)&cgen_var_1338, 1 * 8);
+    uint64_t cgen_var_1339;
+    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1339, 1);
+    stream->write((uint64_t*)&cgen_var_1339, 1 * 8);
     marshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
@@ -17165,22 +17341,22 @@
     local_swapchain = swapchain;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1324;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1324, 1);
-        countingStream->write((uint64_t*)&cgen_var_1324, 1 * 8);
-        uint64_t cgen_var_1325;
-        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1325, 1);
-        countingStream->write((uint64_t*)&cgen_var_1325, 1 * 8);
+        uint64_t cgen_var_1340;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1340, 1);
+        countingStream->write((uint64_t*)&cgen_var_1340, 1 * 8);
+        uint64_t cgen_var_1341;
+        countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1341, 1);
+        countingStream->write((uint64_t*)&cgen_var_1341, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1326 = (uint64_t)(uintptr_t)pPresentationTimingCount;
-        countingStream->putBe64(cgen_var_1326);
+        uint64_t cgen_var_1342 = (uint64_t)(uintptr_t)pPresentationTimingCount;
+        countingStream->putBe64(cgen_var_1342);
         if (pPresentationTimingCount)
         {
             countingStream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t));
         }
         // WARNING PTR CHECK
-        uint64_t cgen_var_1327 = (uint64_t)(uintptr_t)pPresentationTimings;
-        countingStream->putBe64(cgen_var_1327);
+        uint64_t cgen_var_1343 = (uint64_t)(uintptr_t)pPresentationTimings;
+        countingStream->putBe64(cgen_var_1343);
         if (pPresentationTimings)
         {
             for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
@@ -17194,22 +17370,22 @@
     uint32_t opcode_vkGetPastPresentationTimingGOOGLE = OP_vkGetPastPresentationTimingGOOGLE;
     stream->write(&opcode_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t));
     stream->write(&packetSize_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t));
-    uint64_t cgen_var_1328;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1328, 1);
-    stream->write((uint64_t*)&cgen_var_1328, 1 * 8);
-    uint64_t cgen_var_1329;
-    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1329, 1);
-    stream->write((uint64_t*)&cgen_var_1329, 1 * 8);
+    uint64_t cgen_var_1344;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1344, 1);
+    stream->write((uint64_t*)&cgen_var_1344, 1 * 8);
+    uint64_t cgen_var_1345;
+    stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1345, 1);
+    stream->write((uint64_t*)&cgen_var_1345, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1330 = (uint64_t)(uintptr_t)pPresentationTimingCount;
-    stream->putBe64(cgen_var_1330);
+    uint64_t cgen_var_1346 = (uint64_t)(uintptr_t)pPresentationTimingCount;
+    stream->putBe64(cgen_var_1346);
     if (pPresentationTimingCount)
     {
         stream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t));
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1331 = (uint64_t)(uintptr_t)pPresentationTimings;
-    stream->putBe64(cgen_var_1331);
+    uint64_t cgen_var_1347 = (uint64_t)(uintptr_t)pPresentationTimings;
+    stream->putBe64(cgen_var_1347);
     if (pPresentationTimings)
     {
         for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
@@ -17291,9 +17467,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1334;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1334, 1);
-        countingStream->write((uint64_t*)&cgen_var_1334, 1 * 8);
+        uint64_t cgen_var_1350;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1350, 1);
+        countingStream->write((uint64_t*)&cgen_var_1350, 1 * 8);
         countingStream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t));
         countingStream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t));
         for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
@@ -17306,9 +17482,9 @@
     uint32_t opcode_vkCmdSetDiscardRectangleEXT = OP_vkCmdSetDiscardRectangleEXT;
     stream->write(&opcode_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1335;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1335, 1);
-    stream->write((uint64_t*)&cgen_var_1335, 1 * 8);
+    uint64_t cgen_var_1351;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1351, 1);
+    stream->write((uint64_t*)&cgen_var_1351, 1 * 8);
     stream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t));
     stream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t));
     for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
@@ -17356,16 +17532,16 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1336;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1336, 1);
-        countingStream->write((uint64_t*)&cgen_var_1336, 1 * 8);
+        uint64_t cgen_var_1352;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1352, 1);
+        countingStream->write((uint64_t*)&cgen_var_1352, 1 * 8);
         countingStream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
         if (((swapchainCount)))
         {
-            uint64_t* cgen_var_1337;
-            countingStream->alloc((void**)&cgen_var_1337, ((swapchainCount)) * 8);
-            countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1337, ((swapchainCount)));
-            countingStream->write((uint64_t*)cgen_var_1337, ((swapchainCount)) * 8);
+            uint64_t* cgen_var_1353;
+            countingStream->alloc((void**)&cgen_var_1353, ((swapchainCount)) * 8);
+            countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1353, ((swapchainCount)));
+            countingStream->write((uint64_t*)cgen_var_1353, ((swapchainCount)) * 8);
         }
         for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
         {
@@ -17377,16 +17553,16 @@
     uint32_t opcode_vkSetHdrMetadataEXT = OP_vkSetHdrMetadataEXT;
     stream->write(&opcode_vkSetHdrMetadataEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkSetHdrMetadataEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1338;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1338, 1);
-    stream->write((uint64_t*)&cgen_var_1338, 1 * 8);
+    uint64_t cgen_var_1354;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1354, 1);
+    stream->write((uint64_t*)&cgen_var_1354, 1 * 8);
     stream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
     if (((swapchainCount)))
     {
-        uint64_t* cgen_var_1339;
-        stream->alloc((void**)&cgen_var_1339, ((swapchainCount)) * 8);
-        stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1339, ((swapchainCount)));
-        stream->write((uint64_t*)cgen_var_1339, ((swapchainCount)) * 8);
+        uint64_t* cgen_var_1355;
+        stream->alloc((void**)&cgen_var_1355, ((swapchainCount)) * 8);
+        stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1355, ((swapchainCount)));
+        stream->write((uint64_t*)cgen_var_1355, ((swapchainCount)) * 8);
     }
     for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
     {
@@ -17426,45 +17602,45 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1340;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1340, 1);
-        countingStream->write((uint64_t*)&cgen_var_1340, 1 * 8);
+        uint64_t cgen_var_1356;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1356, 1);
+        countingStream->write((uint64_t*)&cgen_var_1356, 1 * 8);
         marshal_VkIOSSurfaceCreateInfoMVK(countingStream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1341 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1341);
+        uint64_t cgen_var_1357 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1357);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1342;
-        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1342, 1);
-        countingStream->write((uint64_t*)&cgen_var_1342, 8);
+        uint64_t cgen_var_1358;
+        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1358, 1);
+        countingStream->write((uint64_t*)&cgen_var_1358, 8);
     }
     uint32_t packetSize_vkCreateIOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateIOSSurfaceMVK = OP_vkCreateIOSSurfaceMVK;
     stream->write(&opcode_vkCreateIOSSurfaceMVK, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateIOSSurfaceMVK, sizeof(uint32_t));
-    uint64_t cgen_var_1343;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1343, 1);
-    stream->write((uint64_t*)&cgen_var_1343, 1 * 8);
+    uint64_t cgen_var_1359;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1359, 1);
+    stream->write((uint64_t*)&cgen_var_1359, 1 * 8);
     marshal_VkIOSSurfaceCreateInfoMVK(stream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1344 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1344);
+    uint64_t cgen_var_1360 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1360);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1345;
-    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1345, 1);
-    stream->write((uint64_t*)&cgen_var_1345, 8);
+    uint64_t cgen_var_1361;
+    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1361, 1);
+    stream->write((uint64_t*)&cgen_var_1361, 8);
     stream->setHandleMapping(resources->unwrapMapping());
-    uint64_t cgen_var_1346;
-    stream->read((uint64_t*)&cgen_var_1346, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1346, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_1362;
+    stream->read((uint64_t*)&cgen_var_1362, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1362, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17505,45 +17681,45 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1347;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1347, 1);
-        countingStream->write((uint64_t*)&cgen_var_1347, 1 * 8);
+        uint64_t cgen_var_1363;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1363, 1);
+        countingStream->write((uint64_t*)&cgen_var_1363, 1 * 8);
         marshal_VkMacOSSurfaceCreateInfoMVK(countingStream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1348 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1348);
+        uint64_t cgen_var_1364 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1364);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1349;
-        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1349, 1);
-        countingStream->write((uint64_t*)&cgen_var_1349, 8);
+        uint64_t cgen_var_1365;
+        countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1365, 1);
+        countingStream->write((uint64_t*)&cgen_var_1365, 8);
     }
     uint32_t packetSize_vkCreateMacOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateMacOSSurfaceMVK = OP_vkCreateMacOSSurfaceMVK;
     stream->write(&opcode_vkCreateMacOSSurfaceMVK, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateMacOSSurfaceMVK, sizeof(uint32_t));
-    uint64_t cgen_var_1350;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1350, 1);
-    stream->write((uint64_t*)&cgen_var_1350, 1 * 8);
+    uint64_t cgen_var_1366;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1366, 1);
+    stream->write((uint64_t*)&cgen_var_1366, 1 * 8);
     marshal_VkMacOSSurfaceCreateInfoMVK(stream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1351 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1351);
+    uint64_t cgen_var_1367 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1367);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1352;
-    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1352, 1);
-    stream->write((uint64_t*)&cgen_var_1352, 8);
+    uint64_t cgen_var_1368;
+    stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1368, 1);
+    stream->write((uint64_t*)&cgen_var_1368, 8);
     stream->setHandleMapping(resources->unwrapMapping());
-    uint64_t cgen_var_1353;
-    stream->read((uint64_t*)&cgen_var_1353, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1353, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_1369;
+    stream->read((uint64_t*)&cgen_var_1369, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1369, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17578,9 +17754,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1354;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1354, 1);
-        countingStream->write((uint64_t*)&cgen_var_1354, 1 * 8);
+        uint64_t cgen_var_1370;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1370, 1);
+        countingStream->write((uint64_t*)&cgen_var_1370, 1 * 8);
         marshal_VkDebugUtilsObjectNameInfoEXT(countingStream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
     }
     uint32_t packetSize_vkSetDebugUtilsObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17588,9 +17764,9 @@
     uint32_t opcode_vkSetDebugUtilsObjectNameEXT = OP_vkSetDebugUtilsObjectNameEXT;
     stream->write(&opcode_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1355;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1355, 1);
-    stream->write((uint64_t*)&cgen_var_1355, 1 * 8);
+    uint64_t cgen_var_1371;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1371, 1);
+    stream->write((uint64_t*)&cgen_var_1371, 1 * 8);
     marshal_VkDebugUtilsObjectNameInfoEXT(stream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
     VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
     stream->read(&vkSetDebugUtilsObjectNameEXT_VkResult_return, sizeof(VkResult));
@@ -17620,9 +17796,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1356;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1356, 1);
-        countingStream->write((uint64_t*)&cgen_var_1356, 1 * 8);
+        uint64_t cgen_var_1372;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1372, 1);
+        countingStream->write((uint64_t*)&cgen_var_1372, 1 * 8);
         marshal_VkDebugUtilsObjectTagInfoEXT(countingStream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
     }
     uint32_t packetSize_vkSetDebugUtilsObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17630,9 +17806,9 @@
     uint32_t opcode_vkSetDebugUtilsObjectTagEXT = OP_vkSetDebugUtilsObjectTagEXT;
     stream->write(&opcode_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1357;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1357, 1);
-    stream->write((uint64_t*)&cgen_var_1357, 1 * 8);
+    uint64_t cgen_var_1373;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1373, 1);
+    stream->write((uint64_t*)&cgen_var_1373, 1 * 8);
     marshal_VkDebugUtilsObjectTagInfoEXT(stream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
     VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
     stream->read(&vkSetDebugUtilsObjectTagEXT_VkResult_return, sizeof(VkResult));
@@ -17662,9 +17838,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1358;
-        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1358, 1);
-        countingStream->write((uint64_t*)&cgen_var_1358, 1 * 8);
+        uint64_t cgen_var_1374;
+        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1374, 1);
+        countingStream->write((uint64_t*)&cgen_var_1374, 1 * 8);
         marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     uint32_t packetSize_vkQueueBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17672,9 +17848,9 @@
     uint32_t opcode_vkQueueBeginDebugUtilsLabelEXT = OP_vkQueueBeginDebugUtilsLabelEXT;
     stream->write(&opcode_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1359;
-    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1359, 1);
-    stream->write((uint64_t*)&cgen_var_1359, 1 * 8);
+    uint64_t cgen_var_1375;
+    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1375, 1);
+    stream->write((uint64_t*)&cgen_var_1375, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
 }
 
@@ -17690,18 +17866,18 @@
     local_queue = queue;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1360;
-        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1360, 1);
-        countingStream->write((uint64_t*)&cgen_var_1360, 1 * 8);
+        uint64_t cgen_var_1376;
+        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1376, 1);
+        countingStream->write((uint64_t*)&cgen_var_1376, 1 * 8);
     }
     uint32_t packetSize_vkQueueEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkQueueEndDebugUtilsLabelEXT = OP_vkQueueEndDebugUtilsLabelEXT;
     stream->write(&opcode_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1361;
-    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1361, 1);
-    stream->write((uint64_t*)&cgen_var_1361, 1 * 8);
+    uint64_t cgen_var_1377;
+    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1377, 1);
+    stream->write((uint64_t*)&cgen_var_1377, 1 * 8);
 }
 
 void VkEncoder::vkQueueInsertDebugUtilsLabelEXT(
@@ -17724,9 +17900,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1362;
-        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1362, 1);
-        countingStream->write((uint64_t*)&cgen_var_1362, 1 * 8);
+        uint64_t cgen_var_1378;
+        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1378, 1);
+        countingStream->write((uint64_t*)&cgen_var_1378, 1 * 8);
         marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     uint32_t packetSize_vkQueueInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17734,9 +17910,9 @@
     uint32_t opcode_vkQueueInsertDebugUtilsLabelEXT = OP_vkQueueInsertDebugUtilsLabelEXT;
     stream->write(&opcode_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1363;
-    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1363, 1);
-    stream->write((uint64_t*)&cgen_var_1363, 1 * 8);
+    uint64_t cgen_var_1379;
+    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1379, 1);
+    stream->write((uint64_t*)&cgen_var_1379, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
 }
 
@@ -17760,9 +17936,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1364;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1364, 1);
-        countingStream->write((uint64_t*)&cgen_var_1364, 1 * 8);
+        uint64_t cgen_var_1380;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1380, 1);
+        countingStream->write((uint64_t*)&cgen_var_1380, 1 * 8);
         marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     uint32_t packetSize_vkCmdBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17770,9 +17946,9 @@
     uint32_t opcode_vkCmdBeginDebugUtilsLabelEXT = OP_vkCmdBeginDebugUtilsLabelEXT;
     stream->write(&opcode_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1365;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1365, 1);
-    stream->write((uint64_t*)&cgen_var_1365, 1 * 8);
+    uint64_t cgen_var_1381;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1381, 1);
+    stream->write((uint64_t*)&cgen_var_1381, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
 }
 
@@ -17788,18 +17964,18 @@
     local_commandBuffer = commandBuffer;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1366;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1366, 1);
-        countingStream->write((uint64_t*)&cgen_var_1366, 1 * 8);
+        uint64_t cgen_var_1382;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1382, 1);
+        countingStream->write((uint64_t*)&cgen_var_1382, 1 * 8);
     }
     uint32_t packetSize_vkCmdEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCmdEndDebugUtilsLabelEXT = OP_vkCmdEndDebugUtilsLabelEXT;
     stream->write(&opcode_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1367;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1367, 1);
-    stream->write((uint64_t*)&cgen_var_1367, 1 * 8);
+    uint64_t cgen_var_1383;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1383, 1);
+    stream->write((uint64_t*)&cgen_var_1383, 1 * 8);
 }
 
 void VkEncoder::vkCmdInsertDebugUtilsLabelEXT(
@@ -17822,9 +17998,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1368;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1368, 1);
-        countingStream->write((uint64_t*)&cgen_var_1368, 1 * 8);
+        uint64_t cgen_var_1384;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1384, 1);
+        countingStream->write((uint64_t*)&cgen_var_1384, 1 * 8);
         marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
     }
     uint32_t packetSize_vkCmdInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -17832,9 +18008,9 @@
     uint32_t opcode_vkCmdInsertDebugUtilsLabelEXT = OP_vkCmdInsertDebugUtilsLabelEXT;
     stream->write(&opcode_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1369;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1369, 1);
-    stream->write((uint64_t*)&cgen_var_1369, 1 * 8);
+    uint64_t cgen_var_1385;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1385, 1);
+    stream->write((uint64_t*)&cgen_var_1385, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
 }
 
@@ -17868,46 +18044,46 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1370;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1370, 1);
-        countingStream->write((uint64_t*)&cgen_var_1370, 1 * 8);
+        uint64_t cgen_var_1386;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1386, 1);
+        countingStream->write((uint64_t*)&cgen_var_1386, 1 * 8);
         marshal_VkDebugUtilsMessengerCreateInfoEXT(countingStream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1371 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1371);
+        uint64_t cgen_var_1387 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1387);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1372;
-        countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1372, 1);
-        countingStream->write((uint64_t*)&cgen_var_1372, 8);
+        uint64_t cgen_var_1388;
+        countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1388, 1);
+        countingStream->write((uint64_t*)&cgen_var_1388, 8);
     }
     uint32_t packetSize_vkCreateDebugUtilsMessengerEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateDebugUtilsMessengerEXT = OP_vkCreateDebugUtilsMessengerEXT;
     stream->write(&opcode_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1373;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1373, 1);
-    stream->write((uint64_t*)&cgen_var_1373, 1 * 8);
+    uint64_t cgen_var_1389;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1389, 1);
+    stream->write((uint64_t*)&cgen_var_1389, 1 * 8);
     marshal_VkDebugUtilsMessengerCreateInfoEXT(stream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1374 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1374);
+    uint64_t cgen_var_1390 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1390);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1375;
-    stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1375, 1);
-    stream->write((uint64_t*)&cgen_var_1375, 8);
+    uint64_t cgen_var_1391;
+    stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1391, 1);
+    stream->write((uint64_t*)&cgen_var_1391, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1376;
-    stream->read((uint64_t*)&cgen_var_1376, 8);
-    stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1376, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
+    uint64_t cgen_var_1392;
+    stream->read((uint64_t*)&cgen_var_1392, 8);
+    stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1392, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult));
@@ -17941,15 +18117,15 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1377;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1377, 1);
-        countingStream->write((uint64_t*)&cgen_var_1377, 1 * 8);
-        uint64_t cgen_var_1378;
-        countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1378, 1);
-        countingStream->write((uint64_t*)&cgen_var_1378, 1 * 8);
+        uint64_t cgen_var_1393;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1393, 1);
+        countingStream->write((uint64_t*)&cgen_var_1393, 1 * 8);
+        uint64_t cgen_var_1394;
+        countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1394, 1);
+        countingStream->write((uint64_t*)&cgen_var_1394, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1379 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1379);
+        uint64_t cgen_var_1395 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1395);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -17960,15 +18136,15 @@
     uint32_t opcode_vkDestroyDebugUtilsMessengerEXT = OP_vkDestroyDebugUtilsMessengerEXT;
     stream->write(&opcode_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1380;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1380, 1);
-    stream->write((uint64_t*)&cgen_var_1380, 1 * 8);
-    uint64_t cgen_var_1381;
-    stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1381, 1);
-    stream->write((uint64_t*)&cgen_var_1381, 1 * 8);
+    uint64_t cgen_var_1396;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1396, 1);
+    stream->write((uint64_t*)&cgen_var_1396, 1 * 8);
+    uint64_t cgen_var_1397;
+    stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1397, 1);
+    stream->write((uint64_t*)&cgen_var_1397, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1382 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1382);
+    uint64_t cgen_var_1398 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1398);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -18002,9 +18178,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1383;
-        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1383, 1);
-        countingStream->write((uint64_t*)&cgen_var_1383, 1 * 8);
+        uint64_t cgen_var_1399;
+        countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1399, 1);
+        countingStream->write((uint64_t*)&cgen_var_1399, 1 * 8);
         countingStream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
         countingStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
         marshal_VkDebugUtilsMessengerCallbackDataEXT(countingStream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
@@ -18014,9 +18190,9 @@
     uint32_t opcode_vkSubmitDebugUtilsMessageEXT = OP_vkSubmitDebugUtilsMessageEXT;
     stream->write(&opcode_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1384;
-    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1384, 1);
-    stream->write((uint64_t*)&cgen_var_1384, 1 * 8);
+    uint64_t cgen_var_1400;
+    stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1400, 1);
+    stream->write((uint64_t*)&cgen_var_1400, 1 * 8);
     stream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
     stream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
     marshal_VkDebugUtilsMessengerCallbackDataEXT(stream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
@@ -18044,9 +18220,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1385;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1385, 1);
-        countingStream->write((uint64_t*)&cgen_var_1385, 1 * 8);
+        uint64_t cgen_var_1401;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1401, 1);
+        countingStream->write((uint64_t*)&cgen_var_1401, 1 * 8);
         countingStream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
         marshal_VkAndroidHardwareBufferPropertiesANDROID(countingStream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
     }
@@ -18055,9 +18231,9 @@
     uint32_t opcode_vkGetAndroidHardwareBufferPropertiesANDROID = OP_vkGetAndroidHardwareBufferPropertiesANDROID;
     stream->write(&opcode_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t));
     stream->write(&packetSize_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t));
-    uint64_t cgen_var_1386;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1386, 1);
-    stream->write((uint64_t*)&cgen_var_1386, 1 * 8);
+    uint64_t cgen_var_1402;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1402, 1);
+    stream->write((uint64_t*)&cgen_var_1402, 1 * 8);
     stream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
     marshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
     unmarshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
@@ -18090,9 +18266,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1387;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1387, 1);
-        countingStream->write((uint64_t*)&cgen_var_1387, 1 * 8);
+        uint64_t cgen_var_1403;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1403, 1);
+        countingStream->write((uint64_t*)&cgen_var_1403, 1 * 8);
         marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(countingStream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
         countingStream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
     }
@@ -18101,9 +18277,9 @@
     uint32_t opcode_vkGetMemoryAndroidHardwareBufferANDROID = OP_vkGetMemoryAndroidHardwareBufferANDROID;
     stream->write(&opcode_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t));
     stream->write(&packetSize_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t));
-    uint64_t cgen_var_1388;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1388, 1);
-    stream->write((uint64_t*)&cgen_var_1388, 1 * 8);
+    uint64_t cgen_var_1404;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1404, 1);
+    stream->write((uint64_t*)&cgen_var_1404, 1 * 8);
     marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(stream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
     stream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
     stream->read((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
@@ -18147,9 +18323,9 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1389;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1389, 1);
-        countingStream->write((uint64_t*)&cgen_var_1389, 1 * 8);
+        uint64_t cgen_var_1405;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1405, 1);
+        countingStream->write((uint64_t*)&cgen_var_1405, 1 * 8);
         marshal_VkSampleLocationsInfoEXT(countingStream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
     }
     uint32_t packetSize_vkCmdSetSampleLocationsEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -18157,9 +18333,9 @@
     uint32_t opcode_vkCmdSetSampleLocationsEXT = OP_vkCmdSetSampleLocationsEXT;
     stream->write(&opcode_vkCmdSetSampleLocationsEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdSetSampleLocationsEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1390;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1390, 1);
-    stream->write((uint64_t*)&cgen_var_1390, 1 * 8);
+    uint64_t cgen_var_1406;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1406, 1);
+    stream->write((uint64_t*)&cgen_var_1406, 1 * 8);
     marshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
 }
 
@@ -18179,9 +18355,9 @@
     local_samples = samples;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1391;
-        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1391, 1);
-        countingStream->write((uint64_t*)&cgen_var_1391, 1 * 8);
+        uint64_t cgen_var_1407;
+        countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1407, 1);
+        countingStream->write((uint64_t*)&cgen_var_1407, 1 * 8);
         countingStream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
         marshal_VkMultisamplePropertiesEXT(countingStream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
     }
@@ -18190,9 +18366,9 @@
     uint32_t opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT = OP_vkGetPhysicalDeviceMultisamplePropertiesEXT;
     stream->write(&opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1392;
-    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1392, 1);
-    stream->write((uint64_t*)&cgen_var_1392, 1 * 8);
+    uint64_t cgen_var_1408;
+    stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1408, 1);
+    stream->write((uint64_t*)&cgen_var_1408, 1 * 8);
     stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
     marshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
     unmarshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
@@ -18240,46 +18416,46 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1393;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1393, 1);
-        countingStream->write((uint64_t*)&cgen_var_1393, 1 * 8);
+        uint64_t cgen_var_1409;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1409, 1);
+        countingStream->write((uint64_t*)&cgen_var_1409, 1 * 8);
         marshal_VkValidationCacheCreateInfoEXT(countingStream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1394 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1394);
+        uint64_t cgen_var_1410 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1410);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
         }
-        uint64_t cgen_var_1395;
-        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1395, 1);
-        countingStream->write((uint64_t*)&cgen_var_1395, 8);
+        uint64_t cgen_var_1411;
+        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1411, 1);
+        countingStream->write((uint64_t*)&cgen_var_1411, 8);
     }
     uint32_t packetSize_vkCreateValidationCacheEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
     countingStream->rewind();
     uint32_t opcode_vkCreateValidationCacheEXT = OP_vkCreateValidationCacheEXT;
     stream->write(&opcode_vkCreateValidationCacheEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkCreateValidationCacheEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1396;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1396, 1);
-    stream->write((uint64_t*)&cgen_var_1396, 1 * 8);
+    uint64_t cgen_var_1412;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1412, 1);
+    stream->write((uint64_t*)&cgen_var_1412, 1 * 8);
     marshal_VkValidationCacheCreateInfoEXT(stream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1397 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1397);
+    uint64_t cgen_var_1413 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1413);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
     stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1398;
-    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1398, 1);
-    stream->write((uint64_t*)&cgen_var_1398, 8);
+    uint64_t cgen_var_1414;
+    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1414, 1);
+    stream->write((uint64_t*)&cgen_var_1414, 8);
     stream->setHandleMapping(resources->unwrapMapping());
     stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1399;
-    stream->read((uint64_t*)&cgen_var_1399, 8);
-    stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1399, (VkValidationCacheEXT*)pValidationCache, 1);
+    uint64_t cgen_var_1415;
+    stream->read((uint64_t*)&cgen_var_1415, 8);
+    stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1415, (VkValidationCacheEXT*)pValidationCache, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult));
@@ -18313,15 +18489,15 @@
     local_pAllocator = nullptr;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1400;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1400, 1);
-        countingStream->write((uint64_t*)&cgen_var_1400, 1 * 8);
-        uint64_t cgen_var_1401;
-        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1401, 1);
-        countingStream->write((uint64_t*)&cgen_var_1401, 1 * 8);
+        uint64_t cgen_var_1416;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1416, 1);
+        countingStream->write((uint64_t*)&cgen_var_1416, 1 * 8);
+        uint64_t cgen_var_1417;
+        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1417, 1);
+        countingStream->write((uint64_t*)&cgen_var_1417, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1402 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1402);
+        uint64_t cgen_var_1418 = (uint64_t)(uintptr_t)local_pAllocator;
+        countingStream->putBe64(cgen_var_1418);
         if (local_pAllocator)
         {
             marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -18332,15 +18508,15 @@
     uint32_t opcode_vkDestroyValidationCacheEXT = OP_vkDestroyValidationCacheEXT;
     stream->write(&opcode_vkDestroyValidationCacheEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkDestroyValidationCacheEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1403;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1403, 1);
-    stream->write((uint64_t*)&cgen_var_1403, 1 * 8);
-    uint64_t cgen_var_1404;
-    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1404, 1);
-    stream->write((uint64_t*)&cgen_var_1404, 1 * 8);
+    uint64_t cgen_var_1419;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1419, 1);
+    stream->write((uint64_t*)&cgen_var_1419, 1 * 8);
+    uint64_t cgen_var_1420;
+    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1420, 1);
+    stream->write((uint64_t*)&cgen_var_1420, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1405 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1405);
+    uint64_t cgen_var_1421 = (uint64_t)(uintptr_t)local_pAllocator;
+    stream->putBe64(cgen_var_1421);
     if (local_pAllocator)
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
@@ -18373,19 +18549,19 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1406;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1406, 1);
-        countingStream->write((uint64_t*)&cgen_var_1406, 1 * 8);
-        uint64_t cgen_var_1407;
-        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1407, 1);
-        countingStream->write((uint64_t*)&cgen_var_1407, 1 * 8);
+        uint64_t cgen_var_1422;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1422, 1);
+        countingStream->write((uint64_t*)&cgen_var_1422, 1 * 8);
+        uint64_t cgen_var_1423;
+        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1423, 1);
+        countingStream->write((uint64_t*)&cgen_var_1423, 1 * 8);
         countingStream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
         if (((srcCacheCount)))
         {
-            uint64_t* cgen_var_1408;
-            countingStream->alloc((void**)&cgen_var_1408, ((srcCacheCount)) * 8);
-            countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1408, ((srcCacheCount)));
-            countingStream->write((uint64_t*)cgen_var_1408, ((srcCacheCount)) * 8);
+            uint64_t* cgen_var_1424;
+            countingStream->alloc((void**)&cgen_var_1424, ((srcCacheCount)) * 8);
+            countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1424, ((srcCacheCount)));
+            countingStream->write((uint64_t*)cgen_var_1424, ((srcCacheCount)) * 8);
         }
     }
     uint32_t packetSize_vkMergeValidationCachesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
@@ -18393,19 +18569,19 @@
     uint32_t opcode_vkMergeValidationCachesEXT = OP_vkMergeValidationCachesEXT;
     stream->write(&opcode_vkMergeValidationCachesEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkMergeValidationCachesEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1409;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1409, 1);
-    stream->write((uint64_t*)&cgen_var_1409, 1 * 8);
-    uint64_t cgen_var_1410;
-    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1410, 1);
-    stream->write((uint64_t*)&cgen_var_1410, 1 * 8);
+    uint64_t cgen_var_1425;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1425, 1);
+    stream->write((uint64_t*)&cgen_var_1425, 1 * 8);
+    uint64_t cgen_var_1426;
+    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1426, 1);
+    stream->write((uint64_t*)&cgen_var_1426, 1 * 8);
     stream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
     if (((srcCacheCount)))
     {
-        uint64_t* cgen_var_1411;
-        stream->alloc((void**)&cgen_var_1411, ((srcCacheCount)) * 8);
-        stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1411, ((srcCacheCount)));
-        stream->write((uint64_t*)cgen_var_1411, ((srcCacheCount)) * 8);
+        uint64_t* cgen_var_1427;
+        stream->alloc((void**)&cgen_var_1427, ((srcCacheCount)) * 8);
+        stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1427, ((srcCacheCount)));
+        stream->write((uint64_t*)cgen_var_1427, ((srcCacheCount)) * 8);
     }
     VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
     stream->read(&vkMergeValidationCachesEXT_VkResult_return, sizeof(VkResult));
@@ -18432,23 +18608,23 @@
     local_validationCache = validationCache;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1412;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1412, 1);
-        countingStream->write((uint64_t*)&cgen_var_1412, 1 * 8);
-        uint64_t cgen_var_1413;
-        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1413, 1);
-        countingStream->write((uint64_t*)&cgen_var_1413, 1 * 8);
+        uint64_t cgen_var_1428;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1428, 1);
+        countingStream->write((uint64_t*)&cgen_var_1428, 1 * 8);
+        uint64_t cgen_var_1429;
+        countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1429, 1);
+        countingStream->write((uint64_t*)&cgen_var_1429, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1414 = (uint64_t)(uintptr_t)pDataSize;
-        countingStream->putBe64(cgen_var_1414);
+        uint64_t cgen_var_1430 = (uint64_t)(uintptr_t)pDataSize;
+        countingStream->putBe64(cgen_var_1430);
         if (pDataSize)
         {
-            uint64_t cgen_var_1415 = (uint64_t)(*pDataSize);
-            countingStream->putBe64(cgen_var_1415);
+            uint64_t cgen_var_1431 = (uint64_t)(*pDataSize);
+            countingStream->putBe64(cgen_var_1431);
         }
         // WARNING PTR CHECK
-        uint64_t cgen_var_1416 = (uint64_t)(uintptr_t)pData;
-        countingStream->putBe64(cgen_var_1416);
+        uint64_t cgen_var_1432 = (uint64_t)(uintptr_t)pData;
+        countingStream->putBe64(cgen_var_1432);
         if (pData)
         {
             countingStream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
@@ -18459,23 +18635,23 @@
     uint32_t opcode_vkGetValidationCacheDataEXT = OP_vkGetValidationCacheDataEXT;
     stream->write(&opcode_vkGetValidationCacheDataEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetValidationCacheDataEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1417;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1417, 1);
-    stream->write((uint64_t*)&cgen_var_1417, 1 * 8);
-    uint64_t cgen_var_1418;
-    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1418, 1);
-    stream->write((uint64_t*)&cgen_var_1418, 1 * 8);
+    uint64_t cgen_var_1433;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1433, 1);
+    stream->write((uint64_t*)&cgen_var_1433, 1 * 8);
+    uint64_t cgen_var_1434;
+    stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1434, 1);
+    stream->write((uint64_t*)&cgen_var_1434, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1419 = (uint64_t)(uintptr_t)pDataSize;
-    stream->putBe64(cgen_var_1419);
+    uint64_t cgen_var_1435 = (uint64_t)(uintptr_t)pDataSize;
+    stream->putBe64(cgen_var_1435);
     if (pDataSize)
     {
-        uint64_t cgen_var_1420 = (uint64_t)(*pDataSize);
-        stream->putBe64(cgen_var_1420);
+        uint64_t cgen_var_1436 = (uint64_t)(*pDataSize);
+        stream->putBe64(cgen_var_1436);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1421 = (uint64_t)(uintptr_t)pData;
-    stream->putBe64(cgen_var_1421);
+    uint64_t cgen_var_1437 = (uint64_t)(uintptr_t)pData;
+    stream->putBe64(cgen_var_1437);
     if (pData)
     {
         stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
@@ -18541,13 +18717,13 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1425;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1425, 1);
-        countingStream->write((uint64_t*)&cgen_var_1425, 1 * 8);
+        uint64_t cgen_var_1441;
+        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1441, 1);
+        countingStream->write((uint64_t*)&cgen_var_1441, 1 * 8);
         countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
         // WARNING PTR CHECK
-        uint64_t cgen_var_1426 = (uint64_t)(uintptr_t)local_pHostPointer;
-        countingStream->putBe64(cgen_var_1426);
+        uint64_t cgen_var_1442 = (uint64_t)(uintptr_t)local_pHostPointer;
+        countingStream->putBe64(cgen_var_1442);
         if (local_pHostPointer)
         {
             countingStream->write((void*)local_pHostPointer, sizeof(uint8_t));
@@ -18559,13 +18735,13 @@
     uint32_t opcode_vkGetMemoryHostPointerPropertiesEXT = OP_vkGetMemoryHostPointerPropertiesEXT;
     stream->write(&opcode_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t));
     stream->write(&packetSize_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t));
-    uint64_t cgen_var_1427;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1427, 1);
-    stream->write((uint64_t*)&cgen_var_1427, 1 * 8);
+    uint64_t cgen_var_1443;
+    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1443, 1);
+    stream->write((uint64_t*)&cgen_var_1443, 1 * 8);
     stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     // WARNING PTR CHECK
-    uint64_t cgen_var_1428 = (uint64_t)(uintptr_t)local_pHostPointer;
-    stream->putBe64(cgen_var_1428);
+    uint64_t cgen_var_1444 = (uint64_t)(uintptr_t)local_pHostPointer;
+    stream->putBe64(cgen_var_1444);
     if (local_pHostPointer)
     {
         stream->write((void*)local_pHostPointer, sizeof(uint8_t));
@@ -18606,13 +18782,13 @@
     local_marker = marker;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1429;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1429, 1);
-        countingStream->write((uint64_t*)&cgen_var_1429, 1 * 8);
+        uint64_t cgen_var_1445;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1445, 1);
+        countingStream->write((uint64_t*)&cgen_var_1445, 1 * 8);
         countingStream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
-        uint64_t cgen_var_1430;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1430, 1);
-        countingStream->write((uint64_t*)&cgen_var_1430, 1 * 8);
+        uint64_t cgen_var_1446;
+        countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1446, 1);
+        countingStream->write((uint64_t*)&cgen_var_1446, 1 * 8);
         countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
         countingStream->write((uint32_t*)&local_marker, sizeof(uint32_t));
     }
@@ -18621,13 +18797,13 @@
     uint32_t opcode_vkCmdWriteBufferMarkerAMD = OP_vkCmdWriteBufferMarkerAMD;
     stream->write(&opcode_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t));
-    uint64_t cgen_var_1431;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1431, 1);
-    stream->write((uint64_t*)&cgen_var_1431, 1 * 8);
+    uint64_t cgen_var_1447;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1447, 1);
+    stream->write((uint64_t*)&cgen_var_1447, 1 * 8);
     stream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
-    uint64_t cgen_var_1432;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1432, 1);
-    stream->write((uint64_t*)&cgen_var_1432, 1 * 8);
+    uint64_t cgen_var_1448;
+    stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1448, 1);
+    stream->write((uint64_t*)&cgen_var_1448, 1 * 8);
     stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_marker, sizeof(uint32_t));
 }
@@ -18659,12 +18835,12 @@
     }
     countingStream->rewind();
     {
-        uint64_t cgen_var_1433;
-        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1433, 1);
-        countingStream->write((uint64_t*)&cgen_var_1433, 1 * 8);
+        uint64_t cgen_var_1449;
+        countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1449, 1);
+        countingStream->write((uint64_t*)&cgen_var_1449, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1434 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
-        countingStream->putBe64(cgen_var_1434);
+        uint64_t cgen_var_1450 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
+        countingStream->putBe64(cgen_var_1450);
         if (local_pCheckpointMarker)
         {
             countingStream->write((void*)local_pCheckpointMarker, sizeof(uint8_t));
@@ -18675,12 +18851,12 @@
     uint32_t opcode_vkCmdSetCheckpointNV = OP_vkCmdSetCheckpointNV;
     stream->write(&opcode_vkCmdSetCheckpointNV, sizeof(uint32_t));
     stream->write(&packetSize_vkCmdSetCheckpointNV, sizeof(uint32_t));
-    uint64_t cgen_var_1435;
-    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1435, 1);
-    stream->write((uint64_t*)&cgen_var_1435, 1 * 8);
+    uint64_t cgen_var_1451;
+    stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1451, 1);
+    stream->write((uint64_t*)&cgen_var_1451, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1436 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
-    stream->putBe64(cgen_var_1436);
+    uint64_t cgen_var_1452 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
+    stream->putBe64(cgen_var_1452);
     if (local_pCheckpointMarker)
     {
         stream->write((void*)local_pCheckpointMarker, sizeof(uint8_t));
@@ -18701,19 +18877,19 @@
     local_queue = queue;
     countingStream->rewind();
     {
-        uint64_t cgen_var_1437;
-        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1437, 1);
-        countingStream->write((uint64_t*)&cgen_var_1437, 1 * 8);
+        uint64_t cgen_var_1453;
+        countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1453, 1);
+        countingStream->write((uint64_t*)&cgen_var_1453, 1 * 8);
         // WARNING PTR CHECK
-        uint64_t cgen_var_1438 = (uint64_t)(uintptr_t)pCheckpointDataCount;
-        countingStream->putBe64(cgen_var_1438);
+        uint64_t cgen_var_1454 = (uint64_t)(uintptr_t)pCheckpointDataCount;
+        countingStream->putBe64(cgen_var_1454);
         if (pCheckpointDataCount)
         {
             countingStream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
         }
         // WARNING PTR CHECK
-        uint64_t cgen_var_1439 = (uint64_t)(uintptr_t)pCheckpointData;
-        countingStream->putBe64(cgen_var_1439);
+        uint64_t cgen_var_1455 = (uint64_t)(uintptr_t)pCheckpointData;
+        countingStream->putBe64(cgen_var_1455);
         if (pCheckpointData)
         {
             for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
@@ -18727,19 +18903,19 @@
     uint32_t opcode_vkGetQueueCheckpointDataNV = OP_vkGetQueueCheckpointDataNV;
     stream->write(&opcode_vkGetQueueCheckpointDataNV, sizeof(uint32_t));
     stream->write(&packetSize_vkGetQueueCheckpointDataNV, sizeof(uint32_t));
-    uint64_t cgen_var_1440;
-    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1440, 1);
-    stream->write((uint64_t*)&cgen_var_1440, 1 * 8);
+    uint64_t cgen_var_1456;
+    stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1456, 1);
+    stream->write((uint64_t*)&cgen_var_1456, 1 * 8);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1441 = (uint64_t)(uintptr_t)pCheckpointDataCount;
-    stream->putBe64(cgen_var_1441);
+    uint64_t cgen_var_1457 = (uint64_t)(uintptr_t)pCheckpointDataCount;
+    stream->putBe64(cgen_var_1457);
     if (pCheckpointDataCount)
     {
         stream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1442 = (uint64_t)(uintptr_t)pCheckpointData;
-    stream->putBe64(cgen_var_1442);
+    uint64_t cgen_var_1458 = (uint64_t)(uintptr_t)pCheckpointData;
+    stream->putBe64(cgen_var_1458);
     if (pCheckpointData)
     {
         for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index a8bc2d1..0163b6b 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -27,6 +27,7 @@
 #include <vulkan/vulkan.h>
 
 
+#include "goldfish_vk_private_defs.h"
 #include <memory>
 class IOStream;
 
@@ -1304,6 +1305,25 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+    VkResult vkGetSwapchainGrallocUsageANDROID(
+    VkDevice device,
+        VkFormat format,
+        VkImageUsageFlags imageUsage,
+        int* grallocUsage);
+    VkResult vkAcquireImageANDROID(
+    VkDevice device,
+        VkImage image,
+        int nativeFenceFd,
+        VkSemaphore semaphore,
+        VkFence fence);
+    VkResult vkQueueSignalReleaseImageANDROID(
+    VkQueue queue,
+        uint32_t waitSemaphoreCount,
+        const VkSemaphore* pWaitSemaphores,
+        VkImage image,
+        int* pNativeFenceFd);
+#endif
 #ifdef VK_EXT_debug_report
     VkResult vkCreateDebugReportCallbackEXT(
     VkInstance instance,
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index f9419a8..c481e3c 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -26,6 +26,7 @@
 
 
 #include "goldfish_vk_extension_structs_guest.h"
+#include "goldfish_vk_private_defs.h"
 
 
 namespace goldfish_vk {
@@ -4411,6 +4412,29 @@
 }
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void deepcopy_VkNativeBufferANDROID(
+    Pool* pool,
+    const VkNativeBufferANDROID* from,
+    VkNativeBufferANDROID* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (const void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    to->handle = nullptr;
+    if (from->handle)
+    {
+        to->handle = (uint32_t*)pool->dupArray(from->handle, sizeof(const uint32_t));
+    }
+}
+
+#endif
 #ifdef VK_EXT_debug_report
 void deepcopy_VkDebugReportCallbackCreateInfoEXT(
     Pool* pool,
@@ -6329,7 +6353,7 @@
     {
         return;
     }
-    VkStructureType structType = goldfish_vk_struct_type(structExtension);
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
     switch(structType)
     {
 #ifdef VK_VERSION_1_1
@@ -6638,6 +6662,13 @@
             break;
         }
 #endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            deepcopy_VkNativeBufferANDROID(pool, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension), reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
index 0090b0a..07828f5 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -29,6 +29,7 @@
 
 #include "vk_platform_compat.h"
 
+#include "goldfish_vk_private_defs.h"
 #include "android/base/Pool.h"
 using android::base::Pool;
 // Stuff we are not going to use but if included,
@@ -1355,6 +1356,13 @@
     VkPhysicalDevice8BitStorageFeaturesKHR* to);
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void deepcopy_VkNativeBufferANDROID(
+    Pool* pool,
+    const VkNativeBufferANDROID* from,
+    VkNativeBufferANDROID* to);
+
+#endif
 #ifdef VK_EXT_debug_report
 void deepcopy_VkDebugReportCallbackCreateInfoEXT(
     Pool* pool,
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index 43fb029..410ea7f 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -132,6 +132,8 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+#endif
 #ifdef VK_EXT_debug_report
 #endif
 #ifdef VK_NV_glsl_shader
@@ -272,10 +274,10 @@
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 #endif
-VkStructureType goldfish_vk_struct_type(
+uint32_t goldfish_vk_struct_type(
     const void* structExtension)
 {
-    const VkStructureType asStructType = *(reinterpret_cast<const VkStructureType*>(structExtension));
+    const uint32_t asStructType = *(reinterpret_cast<const uint32_t*>(structExtension));
     return asStructType;
 }
 
@@ -286,7 +288,7 @@
     {
         return (size_t)0;
     }
-    VkStructureType structType = goldfish_vk_struct_type(structExtension);
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
     switch(structType)
     {
 #ifdef VK_VERSION_1_1
@@ -539,6 +541,12 @@
             return sizeof(VkPhysicalDevice8BitStorageFeaturesKHR);
         }
 #endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            return sizeof(VkNativeBufferANDROID);
+        }
+#endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
index 5ec01ab..6c5a04c 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -28,6 +28,7 @@
 
 
 #include "vk_platform_compat.h"
+#include "goldfish_vk_private_defs.h"
 // Stuff we are not going to use but if included,
 // will cause compile errors. These are Android Vulkan
 // required extensions, but the approach will be to
@@ -38,7 +39,7 @@
 
 namespace goldfish_vk {
 
-VkStructureType goldfish_vk_struct_type(
+uint32_t goldfish_vk_struct_type(
     const void* structExtension);
 
 size_t goldfish_vk_extension_struct_size(
@@ -148,6 +149,8 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 #endif
+#ifdef VK_ANDROID_native_buffer
+#endif
 #ifdef VK_EXT_debug_report
 #endif
 #ifdef VK_NV_glsl_shader
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
index d56775d..e6ab090 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -26,6 +26,7 @@
 
 
 #include "goldfish_vk_extension_structs_guest.h"
+#include "goldfish_vk_private_defs.h"
 
 
 namespace goldfish_vk {
@@ -3299,6 +3300,20 @@
 }
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void handlemap_VkNativeBufferANDROID(
+    VulkanHandleMapping* handlemap,
+    VkNativeBufferANDROID* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_debug_report
 void handlemap_VkDebugReportCallbackCreateInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -4709,7 +4724,7 @@
     {
         return;
     }
-    VkStructureType structType = goldfish_vk_struct_type(structExtension_out);
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
     switch(structType)
     {
 #ifdef VK_VERSION_1_1
@@ -5018,6 +5033,13 @@
             break;
         }
 #endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            handlemap_VkNativeBufferANDROID(handlemap, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.h b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
index 1a732d0..d961965 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -29,6 +29,7 @@
 
 #include "vk_platform_compat.h"
 
+#include "goldfish_vk_private_defs.h"
 #include "VulkanHandleMapping.h"
 // Stuff we are not going to use but if included,
 // will cause compile errors. These are Android Vulkan
@@ -1112,6 +1113,12 @@
     VkPhysicalDevice8BitStorageFeaturesKHR* toMap);
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void handlemap_VkNativeBufferANDROID(
+    VulkanHandleMapping* handlemap,
+    VkNativeBufferANDROID* toMap);
+
+#endif
 #ifdef VK_EXT_debug_report
 void handlemap_VkDebugReportCallbackCreateInfoEXT(
     VulkanHandleMapping* handlemap,
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 9652019..1bd5dae 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -26,6 +26,7 @@
 
 
 #include "goldfish_vk_extension_structs_guest.h"
+#include "goldfish_vk_private_defs.h"
 
 
 namespace goldfish_vk {
@@ -9422,6 +9423,62 @@
 }
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void marshal_VkNativeBufferANDROID(
+    VulkanStream* vkStream,
+    const VkNativeBufferANDROID* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
+    vkStream->putBe32(pNext_size);
+    if (pNext_size)
+    {
+        vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
+        marshal_extension_struct(vkStream, forMarshaling->pNext);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_264 = (uint64_t)(uintptr_t)forMarshaling->handle;
+    vkStream->putBe64(cgen_var_264);
+    if (forMarshaling->handle)
+    {
+        vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
+    }
+    vkStream->write((int*)&forMarshaling->stride, sizeof(int));
+    vkStream->write((int*)&forMarshaling->format, sizeof(int));
+    vkStream->write((int*)&forMarshaling->usage, sizeof(int));
+    vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
+    vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
+}
+
+void unmarshal_VkNativeBufferANDROID(
+    VulkanStream* vkStream,
+    VkNativeBufferANDROID* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    size_t pNext_size;
+    pNext_size = vkStream->getBe32();
+    forUnmarshaling->pNext = nullptr;
+    if (pNext_size)
+    {
+        vkStream->alloc((void**)&forUnmarshaling->pNext, pNext_size);
+        vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
+        unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    }
+    // WARNING PTR CHECK
+    forUnmarshaling->handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->handle)
+    {
+        vkStream->alloc((void**)&forUnmarshaling->handle, sizeof(const uint32_t));
+        vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
+    }
+    vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
+    vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
+    vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
+    vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
+}
+
+#endif
 #ifdef VK_EXT_debug_report
 void marshal_VkDebugReportCallbackCreateInfoEXT(
     VulkanStream* vkStream,
@@ -9436,11 +9493,11 @@
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
     vkStream->write((VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
-    uint64_t cgen_var_264 = (uint64_t)forMarshaling->pfnCallback;
-    vkStream->putBe64(cgen_var_264);
+    uint64_t cgen_var_266 = (uint64_t)forMarshaling->pfnCallback;
+    vkStream->putBe64(cgen_var_266);
     // WARNING PTR CHECK
-    uint64_t cgen_var_265 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    vkStream->putBe64(cgen_var_265);
+    uint64_t cgen_var_267 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_267);
     if (forMarshaling->pUserData)
     {
         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
@@ -9569,8 +9626,8 @@
     vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
     vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
-    uint64_t cgen_var_268 = (uint64_t)forMarshaling->tagSize;
-    vkStream->putBe64(cgen_var_268);
+    uint64_t cgen_var_270 = (uint64_t)forMarshaling->tagSize;
+    vkStream->putBe64(cgen_var_270);
     vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
 }
 
@@ -9710,12 +9767,12 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_270;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_270, 1);
-    vkStream->write((uint64_t*)&cgen_var_270, 1 * 8);
-    uint64_t cgen_var_271;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_271, 1);
-    vkStream->write((uint64_t*)&cgen_var_271, 1 * 8);
+    uint64_t cgen_var_272;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_272, 1);
+    vkStream->write((uint64_t*)&cgen_var_272, 1 * 8);
+    uint64_t cgen_var_273;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_273, 1);
+    vkStream->write((uint64_t*)&cgen_var_273, 1 * 8);
 }
 
 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
@@ -9732,12 +9789,12 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_272;
-    vkStream->read((uint64_t*)&cgen_var_272, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_272, (VkImage*)&forUnmarshaling->image, 1);
-    uint64_t cgen_var_273;
-    vkStream->read((uint64_t*)&cgen_var_273, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_273, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_274;
+    vkStream->read((uint64_t*)&cgen_var_274, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_274, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_275;
+    vkStream->read((uint64_t*)&cgen_var_275, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_275, (VkBuffer*)&forUnmarshaling->buffer, 1);
 }
 
 #endif
@@ -9791,10 +9848,10 @@
     vkStream->write((uint32_t*)&forMarshaling->numUsedVgprs, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->numUsedSgprs, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
-    uint64_t cgen_var_274 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
-    vkStream->putBe64(cgen_var_274);
-    uint64_t cgen_var_275 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
-    vkStream->putBe64(cgen_var_275);
+    uint64_t cgen_var_276 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
+    vkStream->putBe64(cgen_var_276);
+    uint64_t cgen_var_277 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
+    vkStream->putBe64(cgen_var_277);
 }
 
 void unmarshal_VkShaderResourceUsageAMD(
@@ -9975,8 +10032,8 @@
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_278 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    vkStream->putBe64(cgen_var_278);
+    uint64_t cgen_var_280 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    vkStream->putBe64(cgen_var_280);
     if (forMarshaling->pAttributes)
     {
         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
@@ -10025,20 +10082,20 @@
     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
     if (forMarshaling->acquireCount)
     {
-        uint64_t* cgen_var_280;
-        vkStream->alloc((void**)&cgen_var_280, forMarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_280, forMarshaling->acquireCount);
-        vkStream->write((uint64_t*)cgen_var_280, forMarshaling->acquireCount * 8);
+        uint64_t* cgen_var_282;
+        vkStream->alloc((void**)&cgen_var_282, forMarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_282, forMarshaling->acquireCount);
+        vkStream->write((uint64_t*)cgen_var_282, forMarshaling->acquireCount * 8);
     }
     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeoutMilliseconds, forMarshaling->acquireCount * sizeof(const uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
     if (forMarshaling->releaseCount)
     {
-        uint64_t* cgen_var_281;
-        vkStream->alloc((void**)&cgen_var_281, forMarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_281, forMarshaling->releaseCount);
-        vkStream->write((uint64_t*)cgen_var_281, forMarshaling->releaseCount * 8);
+        uint64_t* cgen_var_283;
+        vkStream->alloc((void**)&cgen_var_283, forMarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_283, forMarshaling->releaseCount);
+        vkStream->write((uint64_t*)cgen_var_283, forMarshaling->releaseCount * 8);
     }
     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
 }
@@ -10061,10 +10118,10 @@
     vkStream->alloc((void**)&forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount * sizeof(const VkDeviceMemory));
     if (forUnmarshaling->acquireCount)
     {
-        uint64_t* cgen_var_282;
-        vkStream->alloc((void**)&cgen_var_282, forUnmarshaling->acquireCount * 8);
-        vkStream->read((uint64_t*)cgen_var_282, forUnmarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_282, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
+        uint64_t* cgen_var_284;
+        vkStream->alloc((void**)&cgen_var_284, forUnmarshaling->acquireCount * 8);
+        vkStream->read((uint64_t*)cgen_var_284, forUnmarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_284, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
     }
     vkStream->alloc((void**)&forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
@@ -10074,10 +10131,10 @@
     vkStream->alloc((void**)&forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount * sizeof(const VkDeviceMemory));
     if (forUnmarshaling->releaseCount)
     {
-        uint64_t* cgen_var_283;
-        vkStream->alloc((void**)&cgen_var_283, forUnmarshaling->releaseCount * 8);
-        vkStream->read((uint64_t*)cgen_var_283, forUnmarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_283, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
+        uint64_t* cgen_var_285;
+        vkStream->alloc((void**)&cgen_var_285, forUnmarshaling->releaseCount * 8);
+        vkStream->read((uint64_t*)cgen_var_285, forUnmarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_285, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
     }
     vkStream->alloc((void**)&forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
@@ -10136,8 +10193,8 @@
     }
     vkStream->write((VkViSurfaceCreateFlagsNN*)&forMarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
     // WARNING PTR CHECK
-    uint64_t cgen_var_284 = (uint64_t)(uintptr_t)forMarshaling->window;
-    vkStream->putBe64(cgen_var_284);
+    uint64_t cgen_var_286 = (uint64_t)(uintptr_t)forMarshaling->window;
+    vkStream->putBe64(cgen_var_286);
     if (forMarshaling->window)
     {
         vkStream->write((void*)forMarshaling->window, sizeof(uint8_t));
@@ -10186,9 +10243,9 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_286;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_286, 1);
-    vkStream->write((uint64_t*)&cgen_var_286, 1 * 8);
+    uint64_t cgen_var_288;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_288, 1);
+    vkStream->write((uint64_t*)&cgen_var_288, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
     vkStream->write((VkConditionalRenderingFlagsEXT*)&forMarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
 }
@@ -10207,9 +10264,9 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_287;
-    vkStream->read((uint64_t*)&cgen_var_287, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_287, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_289;
+    vkStream->read((uint64_t*)&cgen_var_289, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_289, (VkBuffer*)&forUnmarshaling->buffer, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
     vkStream->read((VkConditionalRenderingFlagsEXT*)&forUnmarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
 }
@@ -10359,9 +10416,9 @@
     const VkIndirectCommandsTokenNVX* forMarshaling)
 {
     vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    uint64_t cgen_var_288;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_288, 1);
-    vkStream->write((uint64_t*)&cgen_var_288, 1 * 8);
+    uint64_t cgen_var_290;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_290, 1);
+    vkStream->write((uint64_t*)&cgen_var_290, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
 }
 
@@ -10370,9 +10427,9 @@
     VkIndirectCommandsTokenNVX* forUnmarshaling)
 {
     vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    uint64_t cgen_var_289;
-    vkStream->read((uint64_t*)&cgen_var_289, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_289, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_291;
+    vkStream->read((uint64_t*)&cgen_var_291, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_291, (VkBuffer*)&forUnmarshaling->buffer, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
 }
 
@@ -10453,28 +10510,28 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_290;
-    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_290, 1);
-    vkStream->write((uint64_t*)&cgen_var_290, 1 * 8);
-    uint64_t cgen_var_291;
-    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_291, 1);
-    vkStream->write((uint64_t*)&cgen_var_291, 1 * 8);
+    uint64_t cgen_var_292;
+    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_292, 1);
+    vkStream->write((uint64_t*)&cgen_var_292, 1 * 8);
+    uint64_t cgen_var_293;
+    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_293, 1);
+    vkStream->write((uint64_t*)&cgen_var_293, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
     for (uint32_t i = 0; i < (uint32_t)forMarshaling->indirectCommandsTokenCount; ++i)
     {
         marshal_VkIndirectCommandsTokenNVX(vkStream, (const VkIndirectCommandsTokenNVX*)(forMarshaling->pIndirectCommandsTokens + i));
     }
     vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
-    uint64_t cgen_var_292;
-    vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->targetCommandBuffer, &cgen_var_292, 1);
-    vkStream->write((uint64_t*)&cgen_var_292, 1 * 8);
-    uint64_t cgen_var_293;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_293, 1);
-    vkStream->write((uint64_t*)&cgen_var_293, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
     uint64_t cgen_var_294;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_294, 1);
+    vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->targetCommandBuffer, &cgen_var_294, 1);
     vkStream->write((uint64_t*)&cgen_var_294, 1 * 8);
+    uint64_t cgen_var_295;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_295, 1);
+    vkStream->write((uint64_t*)&cgen_var_295, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
+    uint64_t cgen_var_296;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_296, 1);
+    vkStream->write((uint64_t*)&cgen_var_296, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
 }
 
@@ -10492,12 +10549,12 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_295;
-    vkStream->read((uint64_t*)&cgen_var_295, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_295, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
-    uint64_t cgen_var_296;
-    vkStream->read((uint64_t*)&cgen_var_296, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_296, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
+    uint64_t cgen_var_297;
+    vkStream->read((uint64_t*)&cgen_var_297, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_297, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
+    uint64_t cgen_var_298;
+    vkStream->read((uint64_t*)&cgen_var_298, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_298, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
     vkStream->alloc((void**)&forUnmarshaling->pIndirectCommandsTokens, forUnmarshaling->indirectCommandsTokenCount * sizeof(const VkIndirectCommandsTokenNVX));
     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->indirectCommandsTokenCount; ++i)
@@ -10505,16 +10562,16 @@
         unmarshal_VkIndirectCommandsTokenNVX(vkStream, (VkIndirectCommandsTokenNVX*)(forUnmarshaling->pIndirectCommandsTokens + i));
     }
     vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
-    uint64_t cgen_var_297;
-    vkStream->read((uint64_t*)&cgen_var_297, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_297, (VkCommandBuffer*)&forUnmarshaling->targetCommandBuffer, 1);
-    uint64_t cgen_var_298;
-    vkStream->read((uint64_t*)&cgen_var_298, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_298, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
     uint64_t cgen_var_299;
     vkStream->read((uint64_t*)&cgen_var_299, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_299, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
+    vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_299, (VkCommandBuffer*)&forUnmarshaling->targetCommandBuffer, 1);
+    uint64_t cgen_var_300;
+    vkStream->read((uint64_t*)&cgen_var_300, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_300, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
+    uint64_t cgen_var_301;
+    vkStream->read((uint64_t*)&cgen_var_301, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_301, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
 }
 
@@ -10530,12 +10587,12 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_300;
-    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_300, 1);
-    vkStream->write((uint64_t*)&cgen_var_300, 1 * 8);
-    uint64_t cgen_var_301;
-    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_301, 1);
-    vkStream->write((uint64_t*)&cgen_var_301, 1 * 8);
+    uint64_t cgen_var_302;
+    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_302, 1);
+    vkStream->write((uint64_t*)&cgen_var_302, 1 * 8);
+    uint64_t cgen_var_303;
+    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_303, 1);
+    vkStream->write((uint64_t*)&cgen_var_303, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
 }
 
@@ -10553,12 +10610,12 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_302;
-    vkStream->read((uint64_t*)&cgen_var_302, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_302, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
-    uint64_t cgen_var_303;
-    vkStream->read((uint64_t*)&cgen_var_303, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_303, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
+    uint64_t cgen_var_304;
+    vkStream->read((uint64_t*)&cgen_var_304, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_304, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
+    uint64_t cgen_var_305;
+    vkStream->read((uint64_t*)&cgen_var_305, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_305, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
 }
 
@@ -10635,9 +10692,9 @@
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_304;
-    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_304, 1);
-    vkStream->write((uint64_t*)&cgen_var_304, 1 * 8);
+    uint64_t cgen_var_306;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_306, 1);
+    vkStream->write((uint64_t*)&cgen_var_306, 1 * 8);
 }
 
 void unmarshal_VkObjectTablePipelineEntryNVX(
@@ -10646,9 +10703,9 @@
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_305;
-    vkStream->read((uint64_t*)&cgen_var_305, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_305, (VkPipeline*)&forUnmarshaling->pipeline, 1);
+    uint64_t cgen_var_307;
+    vkStream->read((uint64_t*)&cgen_var_307, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_307, (VkPipeline*)&forUnmarshaling->pipeline, 1);
 }
 
 void marshal_VkObjectTableDescriptorSetEntryNVX(
@@ -10657,12 +10714,12 @@
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_306;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_306, 1);
-    vkStream->write((uint64_t*)&cgen_var_306, 1 * 8);
-    uint64_t cgen_var_307;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->descriptorSet, &cgen_var_307, 1);
-    vkStream->write((uint64_t*)&cgen_var_307, 1 * 8);
+    uint64_t cgen_var_308;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_308, 1);
+    vkStream->write((uint64_t*)&cgen_var_308, 1 * 8);
+    uint64_t cgen_var_309;
+    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->descriptorSet, &cgen_var_309, 1);
+    vkStream->write((uint64_t*)&cgen_var_309, 1 * 8);
 }
 
 void unmarshal_VkObjectTableDescriptorSetEntryNVX(
@@ -10671,12 +10728,12 @@
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_308;
-    vkStream->read((uint64_t*)&cgen_var_308, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_308, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
-    uint64_t cgen_var_309;
-    vkStream->read((uint64_t*)&cgen_var_309, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_309, (VkDescriptorSet*)&forUnmarshaling->descriptorSet, 1);
+    uint64_t cgen_var_310;
+    vkStream->read((uint64_t*)&cgen_var_310, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_310, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
+    uint64_t cgen_var_311;
+    vkStream->read((uint64_t*)&cgen_var_311, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_311, (VkDescriptorSet*)&forUnmarshaling->descriptorSet, 1);
 }
 
 void marshal_VkObjectTableVertexBufferEntryNVX(
@@ -10685,9 +10742,9 @@
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_310;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_310, 1);
-    vkStream->write((uint64_t*)&cgen_var_310, 1 * 8);
+    uint64_t cgen_var_312;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_312, 1);
+    vkStream->write((uint64_t*)&cgen_var_312, 1 * 8);
 }
 
 void unmarshal_VkObjectTableVertexBufferEntryNVX(
@@ -10696,9 +10753,9 @@
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_311;
-    vkStream->read((uint64_t*)&cgen_var_311, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_311, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_313;
+    vkStream->read((uint64_t*)&cgen_var_313, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_313, (VkBuffer*)&forUnmarshaling->buffer, 1);
 }
 
 void marshal_VkObjectTableIndexBufferEntryNVX(
@@ -10707,9 +10764,9 @@
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_312;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_312, 1);
-    vkStream->write((uint64_t*)&cgen_var_312, 1 * 8);
+    uint64_t cgen_var_314;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_314, 1);
+    vkStream->write((uint64_t*)&cgen_var_314, 1 * 8);
     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
 }
 
@@ -10719,9 +10776,9 @@
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_313;
-    vkStream->read((uint64_t*)&cgen_var_313, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_313, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_315;
+    vkStream->read((uint64_t*)&cgen_var_315, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_315, (VkBuffer*)&forUnmarshaling->buffer, 1);
     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
 }
 
@@ -10731,9 +10788,9 @@
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_314;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_314, 1);
-    vkStream->write((uint64_t*)&cgen_var_314, 1 * 8);
+    uint64_t cgen_var_316;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_316, 1);
+    vkStream->write((uint64_t*)&cgen_var_316, 1 * 8);
     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
 }
 
@@ -10743,9 +10800,9 @@
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_315;
-    vkStream->read((uint64_t*)&cgen_var_315, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_315, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
+    uint64_t cgen_var_317;
+    vkStream->read((uint64_t*)&cgen_var_317, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_317, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
 }
 
@@ -10782,8 +10839,8 @@
     vkStream->write((VkBool32*)&forMarshaling->viewportWScalingEnable, sizeof(VkBool32));
     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_316 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
-    vkStream->putBe64(cgen_var_316);
+    uint64_t cgen_var_318 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
+    vkStream->putBe64(cgen_var_318);
     if (forMarshaling->pViewportWScalings)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
@@ -11077,8 +11134,8 @@
     }
     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_318 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
-    vkStream->putBe64(cgen_var_318);
+    uint64_t cgen_var_320 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
+    vkStream->putBe64(cgen_var_320);
     if (forMarshaling->pTimes)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
@@ -11192,8 +11249,8 @@
     vkStream->write((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_320 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
-    vkStream->putBe64(cgen_var_320);
+    uint64_t cgen_var_322 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
+    vkStream->putBe64(cgen_var_322);
     if (forMarshaling->pViewportSwizzles)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
@@ -11281,8 +11338,8 @@
     vkStream->write((VkDiscardRectangleModeEXT*)&forMarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
     vkStream->write((uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_322 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
-    vkStream->putBe64(cgen_var_322);
+    uint64_t cgen_var_324 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
+    vkStream->putBe64(cgen_var_324);
     if (forMarshaling->pDiscardRectangles)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i)
@@ -11489,8 +11546,8 @@
     }
     vkStream->write((VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
     // WARNING PTR CHECK
-    uint64_t cgen_var_324 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    vkStream->putBe64(cgen_var_324);
+    uint64_t cgen_var_326 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    vkStream->putBe64(cgen_var_326);
     if (forMarshaling->pView)
     {
         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
@@ -11537,8 +11594,8 @@
     }
     vkStream->write((VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
     // WARNING PTR CHECK
-    uint64_t cgen_var_326 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    vkStream->putBe64(cgen_var_326);
+    uint64_t cgen_var_328 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    vkStream->putBe64(cgen_var_328);
     if (forMarshaling->pView)
     {
         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
@@ -11626,8 +11683,8 @@
     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
-    uint64_t cgen_var_328 = (uint64_t)forMarshaling->tagSize;
-    vkStream->putBe64(cgen_var_328);
+    uint64_t cgen_var_330 = (uint64_t)forMarshaling->tagSize;
+    vkStream->putBe64(cgen_var_330);
     vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
 }
 
@@ -11705,8 +11762,8 @@
     vkStream->putString(forMarshaling->pMessage);
     vkStream->write((uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_330 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
-    vkStream->putBe64(cgen_var_330);
+    uint64_t cgen_var_332 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
+    vkStream->putBe64(cgen_var_332);
     if (forMarshaling->pQueueLabels)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i)
@@ -11716,8 +11773,8 @@
     }
     vkStream->write((uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_331 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
-    vkStream->putBe64(cgen_var_331);
+    uint64_t cgen_var_333 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
+    vkStream->putBe64(cgen_var_333);
     if (forMarshaling->pCmdBufLabels)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i)
@@ -11727,8 +11784,8 @@
     }
     vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_332 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
-    vkStream->putBe64(cgen_var_332);
+    uint64_t cgen_var_334 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
+    vkStream->putBe64(cgen_var_334);
     if (forMarshaling->pObjects)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i)
@@ -11806,11 +11863,11 @@
     vkStream->write((VkDebugUtilsMessengerCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
     vkStream->write((VkDebugUtilsMessageSeverityFlagsEXT*)&forMarshaling->messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
     vkStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&forMarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
-    uint64_t cgen_var_336 = (uint64_t)forMarshaling->pfnUserCallback;
-    vkStream->putBe64(cgen_var_336);
+    uint64_t cgen_var_338 = (uint64_t)forMarshaling->pfnUserCallback;
+    vkStream->putBe64(cgen_var_338);
     // WARNING PTR CHECK
-    uint64_t cgen_var_337 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    vkStream->putBe64(cgen_var_337);
+    uint64_t cgen_var_339 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_339);
     if (forMarshaling->pUserData)
     {
         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
@@ -12003,9 +12060,9 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_340;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_340, 1);
-    vkStream->write((uint64_t*)&cgen_var_340, 1 * 8);
+    uint64_t cgen_var_342;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_342, 1);
+    vkStream->write((uint64_t*)&cgen_var_342, 1 * 8);
 }
 
 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
@@ -12022,9 +12079,9 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_341;
-    vkStream->read((uint64_t*)&cgen_var_341, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_341, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_343;
+    vkStream->read((uint64_t*)&cgen_var_343, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_343, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
 }
 
 void marshal_VkExternalFormatANDROID(
@@ -12557,8 +12614,8 @@
     vkStream->write((VkBool32*)&forMarshaling->coverageModulationTableEnable, sizeof(VkBool32));
     vkStream->write((uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_342 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
-    vkStream->putBe64(cgen_var_342);
+    uint64_t cgen_var_344 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
+    vkStream->putBe64(cgen_var_344);
     if (forMarshaling->pCoverageModulationTable)
     {
         vkStream->write((const float*)forMarshaling->pCoverageModulationTable, forMarshaling->coverageModulationTableCount * sizeof(const float));
@@ -12611,8 +12668,8 @@
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
     vkStream->write((VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
-    uint64_t cgen_var_344 = (uint64_t)forMarshaling->initialDataSize;
-    vkStream->putBe64(cgen_var_344);
+    uint64_t cgen_var_346 = (uint64_t)forMarshaling->initialDataSize;
+    vkStream->putBe64(cgen_var_346);
     vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
 }
 
@@ -12648,9 +12705,9 @@
         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
         marshal_extension_struct(vkStream, forMarshaling->pNext);
     }
-    uint64_t cgen_var_346;
-    vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_346, 1);
-    vkStream->write((uint64_t*)&cgen_var_346, 1 * 8);
+    uint64_t cgen_var_348;
+    vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_348, 1);
+    vkStream->write((uint64_t*)&cgen_var_348, 1 * 8);
 }
 
 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
@@ -12667,9 +12724,9 @@
         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     }
-    uint64_t cgen_var_347;
-    vkStream->read((uint64_t*)&cgen_var_347, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_347, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
+    uint64_t cgen_var_349;
+    vkStream->read((uint64_t*)&cgen_var_349, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_349, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
 }
 
 #endif
@@ -12974,8 +13031,8 @@
     }
     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     // WARNING PTR CHECK
-    uint64_t cgen_var_348 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
-    vkStream->putBe64(cgen_var_348);
+    uint64_t cgen_var_350 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
+    vkStream->putBe64(cgen_var_350);
     if (forMarshaling->pHostPointer)
     {
         vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
@@ -13273,8 +13330,8 @@
     }
     vkStream->write((VkPipelineStageFlagBits*)&forMarshaling->stage, sizeof(VkPipelineStageFlagBits));
     // WARNING PTR CHECK
-    uint64_t cgen_var_350 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
-    vkStream->putBe64(cgen_var_350);
+    uint64_t cgen_var_352 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
+    vkStream->putBe64(cgen_var_352);
     if (forMarshaling->pCheckpointMarker)
     {
         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
@@ -13314,7 +13371,7 @@
     {
         return;
     }
-    VkStructureType structType = goldfish_vk_struct_type(structExtension);
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
     switch(structType)
     {
 #ifdef VK_VERSION_1_1
@@ -13623,6 +13680,13 @@
             break;
         }
 #endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            marshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
@@ -13958,7 +14022,7 @@
     {
         return;
     }
-    VkStructureType structType = goldfish_vk_struct_type(structExtension_out);
+    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
     switch(structType)
     {
 #ifdef VK_VERSION_1_1
@@ -14267,6 +14331,13 @@
             break;
         }
 #endif
+#ifdef VK_ANDROID_native_buffer
+        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
+        {
+            unmarshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_report
         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
         {
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
index e36f8c8..a6ac11f 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -30,6 +30,7 @@
 #include "vk_platform_compat.h"
 
 #include "goldfish_vk_marshaling_guest.h"
+#include "goldfish_vk_private_defs.h"
 #include "VulkanStream.h"
 
 // Stuff we are not going to use but if included,
@@ -2333,6 +2334,19 @@
     VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling);
 
 #endif
+#ifdef VK_ANDROID_native_buffer
+void marshal_VkNativeBufferANDROID(
+    VulkanStream* vkStream,
+    const VkNativeBufferANDROID* forMarshaling);
+
+void unmarshal_VkNativeBufferANDROID(
+    VulkanStream* vkStream,
+    VkNativeBufferANDROID* forUnmarshaling);
+
+#define OP_vkGetSwapchainGrallocUsageANDROID 20251
+#define OP_vkAcquireImageANDROID 20252
+#define OP_vkQueueSignalReleaseImageANDROID 20253
+#endif
 #ifdef VK_EXT_debug_report
 void marshal_VkDebugReportCallbackCreateInfoEXT(
     VulkanStream* vkStream,
@@ -2342,9 +2356,9 @@
     VulkanStream* vkStream,
     VkDebugReportCallbackCreateInfoEXT* forUnmarshaling);
 
-#define OP_vkCreateDebugReportCallbackEXT 20251
-#define OP_vkDestroyDebugReportCallbackEXT 20252
-#define OP_vkDebugReportMessageEXT 20253
+#define OP_vkCreateDebugReportCallbackEXT 20254
+#define OP_vkDestroyDebugReportCallbackEXT 20255
+#define OP_vkDebugReportMessageEXT 20256
 #endif
 #ifdef VK_NV_glsl_shader
 #endif
@@ -2391,11 +2405,11 @@
     VulkanStream* vkStream,
     VkDebugMarkerMarkerInfoEXT* forUnmarshaling);
 
-#define OP_vkDebugMarkerSetObjectTagEXT 20254
-#define OP_vkDebugMarkerSetObjectNameEXT 20255
-#define OP_vkCmdDebugMarkerBeginEXT 20256
-#define OP_vkCmdDebugMarkerEndEXT 20257
-#define OP_vkCmdDebugMarkerInsertEXT 20258
+#define OP_vkDebugMarkerSetObjectTagEXT 20257
+#define OP_vkDebugMarkerSetObjectNameEXT 20258
+#define OP_vkCmdDebugMarkerBeginEXT 20259
+#define OP_vkCmdDebugMarkerEndEXT 20260
+#define OP_vkCmdDebugMarkerInsertEXT 20261
 #endif
 #ifdef VK_AMD_gcn_shader
 #endif
@@ -2426,8 +2440,8 @@
 
 #endif
 #ifdef VK_AMD_draw_indirect_count
-#define OP_vkCmdDrawIndirectCountAMD 20259
-#define OP_vkCmdDrawIndexedIndirectCountAMD 20260
+#define OP_vkCmdDrawIndirectCountAMD 20262
+#define OP_vkCmdDrawIndexedIndirectCountAMD 20263
 #endif
 #ifdef VK_AMD_negative_viewport_height
 #endif
@@ -2462,7 +2476,7 @@
     VulkanStream* vkStream,
     VkShaderStatisticsInfoAMD* forUnmarshaling);
 
-#define OP_vkGetShaderInfoAMD 20261
+#define OP_vkGetShaderInfoAMD 20264
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
@@ -2477,7 +2491,7 @@
     VulkanStream* vkStream,
     VkExternalImageFormatPropertiesNV* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV 20262
+#define OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV 20265
 #endif
 #ifdef VK_NV_external_memory
 void marshal_VkExternalMemoryImageCreateInfoNV(
@@ -2514,7 +2528,7 @@
     VulkanStream* vkStream,
     VkExportMemoryWin32HandleInfoNV* forUnmarshaling);
 
-#define OP_vkGetMemoryWin32HandleNV 20263
+#define OP_vkGetMemoryWin32HandleNV 20266
 #endif
 #ifdef VK_NV_win32_keyed_mutex
 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
@@ -2545,7 +2559,7 @@
     VulkanStream* vkStream,
     VkViSurfaceCreateInfoNN* forUnmarshaling);
 
-#define OP_vkCreateViSurfaceNN 20264
+#define OP_vkCreateViSurfaceNN 20267
 #endif
 #ifdef VK_EXT_shader_subgroup_ballot
 #endif
@@ -2576,8 +2590,8 @@
     VulkanStream* vkStream,
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling);
 
-#define OP_vkCmdBeginConditionalRenderingEXT 20265
-#define OP_vkCmdEndConditionalRenderingEXT 20266
+#define OP_vkCmdBeginConditionalRenderingEXT 20268
+#define OP_vkCmdEndConditionalRenderingEXT 20269
 #endif
 #ifdef VK_NVX_device_generated_commands
 void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
@@ -2692,15 +2706,15 @@
     VulkanStream* vkStream,
     VkObjectTablePushConstantEntryNVX* forUnmarshaling);
 
-#define OP_vkCmdProcessCommandsNVX 20267
-#define OP_vkCmdReserveSpaceForCommandsNVX 20268
-#define OP_vkCreateIndirectCommandsLayoutNVX 20269
-#define OP_vkDestroyIndirectCommandsLayoutNVX 20270
-#define OP_vkCreateObjectTableNVX 20271
-#define OP_vkDestroyObjectTableNVX 20272
-#define OP_vkRegisterObjectsNVX 20273
-#define OP_vkUnregisterObjectsNVX 20274
-#define OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX 20275
+#define OP_vkCmdProcessCommandsNVX 20270
+#define OP_vkCmdReserveSpaceForCommandsNVX 20271
+#define OP_vkCreateIndirectCommandsLayoutNVX 20272
+#define OP_vkDestroyIndirectCommandsLayoutNVX 20273
+#define OP_vkCreateObjectTableNVX 20274
+#define OP_vkDestroyObjectTableNVX 20275
+#define OP_vkRegisterObjectsNVX 20276
+#define OP_vkUnregisterObjectsNVX 20277
+#define OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX 20278
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 void marshal_VkViewportWScalingNV(
@@ -2719,14 +2733,14 @@
     VulkanStream* vkStream,
     VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling);
 
-#define OP_vkCmdSetViewportWScalingNV 20276
+#define OP_vkCmdSetViewportWScalingNV 20279
 #endif
 #ifdef VK_EXT_direct_mode_display
-#define OP_vkReleaseDisplayEXT 20277
+#define OP_vkReleaseDisplayEXT 20280
 #endif
 #ifdef VK_EXT_acquire_xlib_display
-#define OP_vkAcquireXlibDisplayEXT 20278
-#define OP_vkGetRandROutputDisplayEXT 20279
+#define OP_vkAcquireXlibDisplayEXT 20281
+#define OP_vkGetRandROutputDisplayEXT 20282
 #endif
 #ifdef VK_EXT_display_surface_counter
 void marshal_VkSurfaceCapabilities2EXT(
@@ -2737,7 +2751,7 @@
     VulkanStream* vkStream,
     VkSurfaceCapabilities2EXT* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT 20280
+#define OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT 20283
 #endif
 #ifdef VK_EXT_display_control
 void marshal_VkDisplayPowerInfoEXT(
@@ -2772,10 +2786,10 @@
     VulkanStream* vkStream,
     VkSwapchainCounterCreateInfoEXT* forUnmarshaling);
 
-#define OP_vkDisplayPowerControlEXT 20281
-#define OP_vkRegisterDeviceEventEXT 20282
-#define OP_vkRegisterDisplayEventEXT 20283
-#define OP_vkGetSwapchainCounterEXT 20284
+#define OP_vkDisplayPowerControlEXT 20284
+#define OP_vkRegisterDeviceEventEXT 20285
+#define OP_vkRegisterDisplayEventEXT 20286
+#define OP_vkGetSwapchainCounterEXT 20287
 #endif
 #ifdef VK_GOOGLE_display_timing
 void marshal_VkRefreshCycleDurationGOOGLE(
@@ -2810,8 +2824,8 @@
     VulkanStream* vkStream,
     VkPresentTimesInfoGOOGLE* forUnmarshaling);
 
-#define OP_vkGetRefreshCycleDurationGOOGLE 20285
-#define OP_vkGetPastPresentationTimingGOOGLE 20286
+#define OP_vkGetRefreshCycleDurationGOOGLE 20288
+#define OP_vkGetPastPresentationTimingGOOGLE 20289
 #endif
 #ifdef VK_NV_sample_mask_override_coverage
 #endif
@@ -2864,7 +2878,7 @@
     VulkanStream* vkStream,
     VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling);
 
-#define OP_vkCmdSetDiscardRectangleEXT 20287
+#define OP_vkCmdSetDiscardRectangleEXT 20290
 #endif
 #ifdef VK_EXT_conservative_rasterization
 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
@@ -2903,7 +2917,7 @@
     VulkanStream* vkStream,
     VkHdrMetadataEXT* forUnmarshaling);
 
-#define OP_vkSetHdrMetadataEXT 20288
+#define OP_vkSetHdrMetadataEXT 20291
 #endif
 #ifdef VK_MVK_ios_surface
 void marshal_VkIOSSurfaceCreateInfoMVK(
@@ -2914,7 +2928,7 @@
     VulkanStream* vkStream,
     VkIOSSurfaceCreateInfoMVK* forUnmarshaling);
 
-#define OP_vkCreateIOSSurfaceMVK 20289
+#define OP_vkCreateIOSSurfaceMVK 20292
 #endif
 #ifdef VK_MVK_macos_surface
 void marshal_VkMacOSSurfaceCreateInfoMVK(
@@ -2925,7 +2939,7 @@
     VulkanStream* vkStream,
     VkMacOSSurfaceCreateInfoMVK* forUnmarshaling);
 
-#define OP_vkCreateMacOSSurfaceMVK 20290
+#define OP_vkCreateMacOSSurfaceMVK 20293
 #endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
@@ -2972,17 +2986,17 @@
     VulkanStream* vkStream,
     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling);
 
-#define OP_vkSetDebugUtilsObjectNameEXT 20291
-#define OP_vkSetDebugUtilsObjectTagEXT 20292
-#define OP_vkQueueBeginDebugUtilsLabelEXT 20293
-#define OP_vkQueueEndDebugUtilsLabelEXT 20294
-#define OP_vkQueueInsertDebugUtilsLabelEXT 20295
-#define OP_vkCmdBeginDebugUtilsLabelEXT 20296
-#define OP_vkCmdEndDebugUtilsLabelEXT 20297
-#define OP_vkCmdInsertDebugUtilsLabelEXT 20298
-#define OP_vkCreateDebugUtilsMessengerEXT 20299
-#define OP_vkDestroyDebugUtilsMessengerEXT 20300
-#define OP_vkSubmitDebugUtilsMessageEXT 20301
+#define OP_vkSetDebugUtilsObjectNameEXT 20294
+#define OP_vkSetDebugUtilsObjectTagEXT 20295
+#define OP_vkQueueBeginDebugUtilsLabelEXT 20296
+#define OP_vkQueueEndDebugUtilsLabelEXT 20297
+#define OP_vkQueueInsertDebugUtilsLabelEXT 20298
+#define OP_vkCmdBeginDebugUtilsLabelEXT 20299
+#define OP_vkCmdEndDebugUtilsLabelEXT 20300
+#define OP_vkCmdInsertDebugUtilsLabelEXT 20301
+#define OP_vkCreateDebugUtilsMessengerEXT 20302
+#define OP_vkDestroyDebugUtilsMessengerEXT 20303
+#define OP_vkSubmitDebugUtilsMessageEXT 20304
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void marshal_VkAndroidHardwareBufferUsageANDROID(
@@ -3033,8 +3047,8 @@
     VulkanStream* vkStream,
     VkExternalFormatANDROID* forUnmarshaling);
 
-#define OP_vkGetAndroidHardwareBufferPropertiesANDROID 20302
-#define OP_vkGetMemoryAndroidHardwareBufferANDROID 20303
+#define OP_vkGetAndroidHardwareBufferPropertiesANDROID 20305
+#define OP_vkGetMemoryAndroidHardwareBufferANDROID 20306
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 void marshal_VkSamplerReductionModeCreateInfoEXT(
@@ -3127,8 +3141,8 @@
     VulkanStream* vkStream,
     VkMultisamplePropertiesEXT* forUnmarshaling);
 
-#define OP_vkCmdSetSampleLocationsEXT 20304
-#define OP_vkGetPhysicalDeviceMultisamplePropertiesEXT 20305
+#define OP_vkCmdSetSampleLocationsEXT 20307
+#define OP_vkGetPhysicalDeviceMultisamplePropertiesEXT 20308
 #endif
 #ifdef VK_EXT_blend_operation_advanced
 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
@@ -3197,10 +3211,10 @@
     VulkanStream* vkStream,
     VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling);
 
-#define OP_vkCreateValidationCacheEXT 20306
-#define OP_vkDestroyValidationCacheEXT 20307
-#define OP_vkMergeValidationCachesEXT 20308
-#define OP_vkGetValidationCacheDataEXT 20309
+#define OP_vkCreateValidationCacheEXT 20309
+#define OP_vkDestroyValidationCacheEXT 20310
+#define OP_vkMergeValidationCachesEXT 20311
+#define OP_vkGetValidationCacheDataEXT 20312
 #endif
 #ifdef VK_EXT_descriptor_indexing
 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
@@ -3281,10 +3295,10 @@
     VulkanStream* vkStream,
     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling);
 
-#define OP_vkGetMemoryHostPointerPropertiesEXT 20310
+#define OP_vkGetMemoryHostPointerPropertiesEXT 20313
 #endif
 #ifdef VK_AMD_buffer_marker
-#define OP_vkCmdWriteBufferMarkerAMD 20311
+#define OP_vkCmdWriteBufferMarkerAMD 20314
 #endif
 #ifdef VK_AMD_shader_core_properties
 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
@@ -3341,8 +3355,8 @@
     VulkanStream* vkStream,
     VkCheckpointDataNV* forUnmarshaling);
 
-#define OP_vkCmdSetCheckpointNV 20312
-#define OP_vkGetQueueCheckpointDataNV 20313
+#define OP_vkCmdSetCheckpointNV 20315
+#define OP_vkGetQueueCheckpointDataNV 20316
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_private_defs.h b/system/vulkan_enc/goldfish_vk_private_defs.h
new file mode 100644
index 0000000..2cfdf63
--- /dev/null
+++ b/system/vulkan_enc/goldfish_vk_private_defs.h
@@ -0,0 +1,90 @@
+// 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.
+#pragma once
+
+#include <vulkan/vulkan.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define VK_ANDROID_native_buffer 1
+#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER 11
+
+/* NOTE ON VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 6
+ *
+ * This version of the extension transitions from gralloc0 to gralloc1 usage
+ * flags (int -> 2x uint64_t). The WSI implementation will temporarily continue
+ * to fill out deprecated fields in VkNativeBufferANDROID, and will call the
+ * deprecated vkGetSwapchainGrallocUsageANDROID if the new
+ * vkGetSwapchainGrallocUsage2ANDROID is not supported. This transitionary
+ * backwards-compatibility support is temporary, and will likely be removed in
+ * (along with all gralloc0 support) in a future release.
+ */
+#define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION     7
+#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME   "VK_ANDROID_native_buffer"
+
+#define VK_ANDROID_NATIVE_BUFFER_ENUM(type,id)    ((type)(1000000000 + (1000 * (VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER - 1)) + (id)))
+#define VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID   VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 0)
+#define VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 1)
+#define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 2)
+
+typedef enum VkSwapchainImageUsageFlagBitsANDROID {
+    VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0x00000001,
+    VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSwapchainImageUsageFlagBitsANDROID;
+typedef VkFlags VkSwapchainImageUsageFlagsANDROID;
+
+typedef struct {
+    VkStructureType             sType; // must be VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID
+    const void*                 pNext;
+
+    // Buffer handle and stride returned from gralloc alloc()
+    const uint32_t*             handle;
+    int                         stride;
+
+    // Gralloc format and usage requested when the buffer was allocated.
+    int                         format;
+    int                         usage; // DEPRECATED in SPEC_VERSION 6
+    // -- Added in SPEC_VERSION 6 --
+    uint64_t                consumer;
+    uint64_t                producer;
+} VkNativeBufferANDROID;
+
+typedef struct {
+    VkStructureType                        sType; // must be VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID
+    const void*                            pNext;
+
+    VkSwapchainImageUsageFlagsANDROID      usage;
+} VkSwapchainImageCreateInfoANDROID;
+
+typedef struct {
+    VkStructureType                        sType; // must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID
+    const void*                            pNext;
+
+    VkBool32                               sharedImage;
+} VkPhysicalDevicePresentationPropertiesANDROID;
+
+// -- DEPRECATED in SPEC_VERSION 6 --
+typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageANDROID)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, int* grallocUsage);
+// -- ADDED in SPEC_VERSION 6 --
+typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsage2ANDROID)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage, uint64_t* grallocProducerUsage);
+typedef VkResult (VKAPI_PTR *PFN_vkAcquireImageANDROID)(VkDevice device, VkImage image, int nativeFenceFd, VkSemaphore semaphore, VkFence fence);
+typedef VkResult (VKAPI_PTR *PFN_vkQueueSignalReleaseImageANDROID)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int* pNativeFenceFd);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
\ No newline at end of file